Predicting NFL Stats

The goal of this capstone project was to set a baseline linear regression for predicting NFL statistics. The use of the analysis would be to project player performance and see if the team I am working with needs to consider making adjustments given various factors of the upcoming game/season.

Where to get the data

I went to the website http://armchairanalysis.com/data.php. I have a subscription to the database, so I connected into it via SQL. I downloaded the historical database onto my hard drive, and mapped it in MySQL.

I then queried the DB to get the fields I would need. This operation took extensive time, so once it ran, I exported to a csv file, then read the csv into R.

suppressMessages(library(dplyr))
## Warning: package 'dplyr' was built under R version 3.3.2
suppressMessages(library(tidyr))
## Warning: package 'tidyr' was built under R version 3.3.2
suppressMessages(library(ggplot2))
## Warning: package 'ggplot2' was built under R version 3.3.2
suppressMessages(library(reshape2))
## Warning: package 'reshape2' was built under R version 3.3.2
suppressMessages(library(caTools))
## Warning: package 'caTools' was built under R version 3.3.3
suppressMessages(library(caret))
## Warning: package 'caret' was built under R version 3.3.3
suppressMessages(library(GGally))
## Warning: package 'GGally' was built under R version 3.3.3
suppressMessages(library(randomForest))
## Warning: package 'randomForest' was built under R version 3.3.3
suppressMessages(library(e1071))
## Warning: package 'e1071' was built under R version 3.3.3
nfl_data <- read.csv("NFL_offense.csv")

The data is pretty clean from armchairanalyis, fivethirtyeight.com uses this website for its sports data, so it is a pretty reputable site.

I felt there were pieces of data either missing, or needing cleaning up. This brought on the fun process of cleaning and tidying the data.

Weather and field conditions

From a qualitative perspective, we know that field turf and ideal temperatures are the least inhibitive towards speed, according to players themselves. I wanted to identify extremes and hinderences.

I replaced all “NULL” temp fields with a generic “room” temperature assumption.

cold_weather and hot_weather were fields created to identify extreme ends of the temperature spectrum, and see if they have an impact on play

#make all null temperatures at game time "room" temperature
nfl_data$temp[nfl_data$temp == "NULL"] <- 70
nfl_data$temp <- as.integer(nfl_data$temp)

#highlight temp extremes
nfl_data <- mutate(nfl_data, cold_weather= ifelse(temp < 45, 1,0))
nfl_data <- mutate(nfl_data, hot_weather=  ifelse(temp > 85, 1,0))

#weather factors
nfl_data <- mutate(nfl_data, grass_1 = ifelse(surf == "DD GrassMaster" | surf == "Grass",
                                              1,0))
nfl_data <- mutate(nfl_data, bad_weather_1 = ifelse(cond == "Light Rain" | 
                                                      cond == "Rain" |
                                                      cond == "Flurries" |
                                                      cond == "Snow" |
                                                      cond == "Foggy" |
                                                      cond == "Windy" |
                                                      cond == "Hazy" |
                                                      cond == "Thunderstorms"|
                                                      cond == "Light Snow" |
                                                      cond == "Light Showers" ,1,0))

Home field advantage

Do players play better at home?

#identify home team
nfl_data$h <- as.character(nfl_data$h)
nfl_data$team <- as.character(nfl_data$team)
nfl_data <- mutate(nfl_data, home_team_1=  ifelse(h == team, 1,0))

Positions

Ignoring player stats, does the position matter

#identify position
nfl_data <- mutate(nfl_data, is_WR =  ifelse(pos1 == "WR", 1,0))
nfl_data <- mutate(nfl_data, is_TE =  ifelse(pos1 == "TE", 1,0))
nfl_data <- mutate(nfl_data, is_RB =  ifelse(pos1 == "RB", 1,0))
nfl_data <- mutate(nfl_data, is_QB =  ifelse(pos1 == "QB", 1,0))

Age

Every year players get older, so we want to know “Does father time impact player performance?”

#age
nfl_data <- mutate(nfl_data, age = year - yob)

Combine cleanup

The NFL combine is an event where prospective new players work out for the entire league to see. Their physical measurements are taken, and people find merit in this event. I wanted to see if these stats had any impact on player performance. Not all players attend the combine. For the fields where there are zeroes for the combine stat, I took the average for all non-zero stats for that position. This basically implies if you didn’t attend the combine, your stats are middle of the road.

#replace 0 forty with avg for position
nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(forty1 = ifelse(forty == 0, mean(forty[forty>0]), forty))
#replace 0 vertical with average for position
nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(vertical1 = ifelse(vertical == 0, mean(vertical[vertical>0]), vertical))
#replace 0 arm length with formula for 40% of height is arm
nfl_data$arm <- ifelse(nfl_data$arm == 0, nfl_data$height*0.4, nfl_data$arm)
nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(shuttle1 = ifelse(shuttle == 0, mean(shuttle[shuttle>0]), shuttle))
nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(cone1 = ifelse(cone == 0, mean(cone[cone>0]), cone))

NFL Teams

I created fields for teams (1 if player plays for that team in the header 0 if it doesn’t). I also cleaned up one team: The St Louis/LA Rams. The Rams moved in 2016 to LA, so the conditions of stadium changed. I combined the field into a single field.

#clean teams and give each team a field
nfl_data <- mutate(nfl_data, Teams =  ifelse(team == "STL" | team == "LA", "STL/LA",team))
nfl_data <- mutate(nfl_data, ARI = ifelse(Teams == "ARI",1,0))
nfl_data <- mutate(nfl_data, ATL = ifelse(Teams == "ATL",1,0))
nfl_data <- mutate(nfl_data, BAL = ifelse(Teams == "BAL",1,0))
nfl_data <- mutate(nfl_data, BUF = ifelse(Teams == "BUF",1,0))
nfl_data <- mutate(nfl_data, CAR = ifelse(Teams == "CAR",1,0))
nfl_data <- mutate(nfl_data, CHI = ifelse(Teams == "CHI",1,0))
nfl_data <- mutate(nfl_data, CIN = ifelse(Teams == "CIN",1,0))
nfl_data <- mutate(nfl_data, CLE = ifelse(Teams == "CLE",1,0))
nfl_data <- mutate(nfl_data, DAL = ifelse(Teams == "DAL",1,0))
nfl_data <- mutate(nfl_data, DEN = ifelse(Teams == "DEN",1,0))
nfl_data <- mutate(nfl_data, DET = ifelse(Teams == "DET",1,0))
nfl_data <- mutate(nfl_data, GB = ifelse(Teams == "GB",1,0))
nfl_data <- mutate(nfl_data, HOU = ifelse(Teams == "HOU",1,0))
nfl_data <- mutate(nfl_data, IND = ifelse(Teams == "IND",1,0))
nfl_data <- mutate(nfl_data, JAC = ifelse(Teams == "JAC",1,0))
nfl_data <- mutate(nfl_data, KC = ifelse(Teams == "KC",1,0))
nfl_data <- mutate(nfl_data, MIA = ifelse(Teams == "MIA",1,0))
nfl_data <- mutate(nfl_data, MINN = ifelse(Teams == "MIN",1,0))
nfl_data <- mutate(nfl_data, NE = ifelse(Teams == "NE",1,0))
nfl_data <- mutate(nfl_data, NOR = ifelse(Teams == "NO",1,0))
nfl_data <- mutate(nfl_data, NYG = ifelse(Teams == "NYG",1,0))
nfl_data <- mutate(nfl_data, NYJ = ifelse(Teams == "NYJ",1,0))
nfl_data <- mutate(nfl_data, OAK = ifelse(Teams == "OAK",1,0))
nfl_data <- mutate(nfl_data, PHI = ifelse(Teams == "PHI",1,0))
nfl_data <- mutate(nfl_data, PIT = ifelse(Teams == "PIT",1,0))
nfl_data <- mutate(nfl_data, SD = ifelse(Teams == "SD",1,0))
nfl_data <- mutate(nfl_data, SEA = ifelse(Teams == "SEA",1,0))
nfl_data <- mutate(nfl_data, SF = ifelse(Teams == "SF",1,0))
nfl_data <- mutate(nfl_data, STL = ifelse(Teams == "STL/LA",1,0))
nfl_data <- mutate(nfl_data, TB = ifelse(Teams == "TB",1,0))
nfl_data <- mutate(nfl_data, TEN = ifelse(Teams == "TEN",1,0))
nfl_data <- mutate(nfl_data, WAS = ifelse(Teams == "WAS",1,0))

Receiving Stats

For receiving, I wanted to get every players average: * yards * receptions * targets * touchdowns

I also wanted to get every position average, and average for team. Rationale for at least having that info is this: Compare player to team to league wide position

#calculate the averages by player, position, and team
#receiving
nfl_data <- nfl_data %>%
              group_by(player.1)%>%
                mutate(avg_recy_plyr = mean(recy))
nfl_data <- nfl_data %>%
              group_by(pos1)%>%
                mutate(avg_recy_pos = mean(recy))
nfl_data <- nfl_data %>%
              group_by(Teams)%>%
                mutate(avg_recy_team = mean(recy))
nfl_data <- nfl_data %>%
              group_by(player.1)%>%
                mutate(avg_rec_plyr = mean(rec))
nfl_data <- nfl_data %>%
              group_by(pos1)%>%
                mutate(avg_rec_pos = mean(rec))
nfl_data <- nfl_data %>%
              group_by(Teams)%>%
                mutate(avg_rec_team = mean(rec))
nfl_data <- nfl_data %>%
              group_by(player.1)%>%
                mutate(avg_trg_plyr = mean(trg))
nfl_data <- nfl_data %>%
              group_by(pos1)%>%
                mutate(avg_trg_pos = mean(trg))
nfl_data <- nfl_data %>%
              group_by(Teams)%>%
                mutate(avg_trg_team = mean(trg))
nfl_data <- nfl_data %>%
              group_by(player.1)%>%
                mutate(avg_rectd_plyr = mean(tdrec))
nfl_data <- nfl_data %>%
              group_by(pos1)%>%
                mutate(avg_rectd_pos = mean(tdrec))
nfl_data <- nfl_data %>%
              group_by(Teams)%>%
                mutate(avg_rectd_team = mean(tdrec))

Running Stats

I followed a similar process from up above.
The stats I was looking for the mean for were: * rushing attempts * rushing yards * fumbles

#running
nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_rbra_plyr = mean(ra))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_rbra_team = mean(ra))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_rbra_pos = mean(ra))

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_rbry_plyr = mean(ry))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_rbry_team = mean(ry))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_rbry_pos = mean(ry))

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_fuml_plyr = mean(fuml))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_fuml_team = mean(fuml))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_fuml_pos = mean(fuml))  

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_tdr_plyr = mean(tdr))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_tdr_pos = mean(tdr))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_tdr_team = mean(tdr))

Passing

I followed a similar process from up above.
The stats I was looking for the mean for were: * passing yards * passing attempts * passing completions * passing touchdowns * interceptions

#passing
nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_qbpy_plyr = mean(py))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_qbpy_team = mean(py))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_qbpy_pos = mean(py))


nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_qbpc_plyr = mean(pc))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_qbpc_team = mean(pc))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_qbpc_pos = mean(pc))

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_qbints_plyr = mean(ints))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_qbints_team = mean(ints))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_qbints_pos = mean(ints))

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_qbtdp_plyr = mean(tdp))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_qbtdp_team = mean(tdp))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_qbtdp_pos = mean(tdp))

nfl_data <- nfl_data %>%
  group_by(player.1)%>%
  mutate(avg_qbpa_plyr = mean(pa))

nfl_data <- nfl_data %>%
  group_by(Teams)%>%
  mutate(avg_qbpa_team = mean(pa))

nfl_data <- nfl_data %>%
  group_by(pos1)%>%
  mutate(avg_qbpa_pos = mean(pa))

Pre-Analysis exploration

I wanted to learn a little about the data. I had approximately 100 fields to choose from, so it is hard to infer if there were any correlations or other patterns off hand. I built a subset of the fields I wanted to explore. I named this subset: nfl_data_fields

I then created a correlation matrix:

nfl_data_fields<- subset(nfl_data, select = c("height", "weight", "cold_weather", "hot_weather",
                         "home_team_1", "temp",
                         "forty1", "vertical1", "ARI", "ATL", "BAL", "BUF",
                         "CAR", "CHI", "CIN", "CLE", "DAL", "DEN", "DET", "GB", "HOU", "IND",
                         "JAC", "KC", "MIA", "MINN", "NE", "NOR", "NYG", "NYJ", "OAK", "PHI", "PIT",
                         "SD", "SEA", "STL", "TB", "TEN", "WAS",
                         "avg_recy_plyr","avg_recy_pos","avg_recy_team","avg_rec_plyr","avg_rec_pos",
                         "avg_rec_team", "avg_trg_plyr","avg_trg_pos","avg_trg_team","avg_rectd_plyr",
                         "avg_rectd_pos","avg_rectd_team","avg_tdr_plyr","avg_tdr_pos","avg_tdr_team",
                         "avg_rbra_plyr","avg_rbra_pos", "avg_rbra_team","avg_rbry_plyr","avg_rbry_pos",
                         "avg_rbry_team","avg_fuml_plyr","avg_fuml_pos", "avg_fuml_team","avg_qbpy_plyr",
                         "avg_qbpy_pos", "avg_qbpy_team","avg_qbpa_plyr","avg_qbpa_pos","avg_qbpa_team",
                         "avg_qbpc_plyr","avg_qbpc_pos", "avg_qbpc_team","avg_qbints_plyr", "avg_qbints_pos",
                         "avg_qbints_team","avg_qbtdp_plyr","avg_qbtdp_pos","avg_qbtdp_team","grass_1",
                         "bad_weather_1"))


cor_nfl <- cor(nfl_data_fields)

If you were to run cor_nfl, the print out is extremely difficult to read and gets cut off because of it’s size.

I decided a simpler view should be created, so I created an image of the matrix

image(cor_nfl)

This gives a pretty interesting view of the data, but is still hard to interpret. That being said, it was on the right path.

I then used qplot to get a better view of the data. With qplot I can control the colors, and since correlation matrices range from -1 to 1, setting the bookends of the color spectrum based on the values of the correlation would give me a very indicative heatmap

qplot(x=Var1, y=Var2, data=melt(cor(nfl_data_fields)), fill=value, geom="tile")+
  scale_fill_gradient2(limits=c(-1, 1))+
  theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 5),
        axis.text.y = element_text(size = 5))

There are strong relationships where we calculated general averages for the position, teams and players. That is not surprising since a stat like rushing will have strong relationships with how many attempts you make at rushing the ball. Typically, if you are running the ball more, you should see more yards. Obvious, but this confirms the correlation.

We then have to remove the highly correlated data fields.

highlyCor_nfl_data_fields1 <- findCorrelation(cor_nfl, cutoff = .8)
highlyCor_nfl_data_fields1
##  [1] 44 47 62 41 50 70 64 67 77 65 71 68 74 73 46 40 43 42 66 45 72 51 69
## [24] 53 60 56 52 55  6
highlyCor_nfl_data_fields2 <- findCorrelation(cor_nfl, cutoff = .85)
highlyCor_nfl_data_fields2
##  [1] 44 47 62 41 50 70 64 67 77 65 71 68 74 73 46 40 42 66 45 72 51 69 53
## [24] 60 56 52 55
highlyCor_nfl_data_fields3 <- findCorrelation(cor_nfl, cutoff = .9)
highlyCor_nfl_data_fields3
##  [1] 44 47 62 41 70 64 67 77 65 71 68 74 76 46 40 42 66 45 72 51 69 53 56
## [24] 52 55
filtered_nfl_data_fields <-nfl_data_fields
filtered_nfl_data_fields <- filtered_nfl_data_fields[,-highlyCor_nfl_data_fields1]
filtered_nfl_data_fields
## # A tibble: 39,255 × 51
##    height weight cold_weather hot_weather home_team_1   forty1 vertical1
##     <int>  <int>        <dbl>       <dbl>       <dbl>    <dbl>     <dbl>
## 1      73    217            0           0           0 4.400000  38.50000
## 2      70    209            0           0           0 4.550000  34.80631
## 3      73    190            0           0           0 4.580000  38.00000
## 4      74    225            0           0           0 4.794693  31.82285
## 5      72    189            0           0           1 4.410000  36.50000
## 6      72    209            0           0           1 4.830000  32.00000
## 7      71    200            0           0           1 4.410000  36.07315
## 8      75    248            0           0           1 4.670000  37.50000
## 9      73    190            0           0           0 4.463801  36.07315
## 10     72    180            0           0           0 4.463801  36.07315
## # ... with 39,245 more rows, and 44 more variables: ARI <dbl>, ATL <dbl>,
## #   BAL <dbl>, BUF <dbl>, CAR <dbl>, CHI <dbl>, CIN <dbl>, CLE <dbl>,
## #   DAL <dbl>, DEN <dbl>, DET <dbl>, GB <dbl>, HOU <dbl>, IND <dbl>,
## #   JAC <dbl>, KC <dbl>, MIA <dbl>, MINN <dbl>, NE <dbl>, NOR <dbl>,
## #   NYG <dbl>, NYJ <dbl>, OAK <dbl>, PHI <dbl>, PIT <dbl>, SD <dbl>,
## #   SEA <dbl>, STL <dbl>, TB <dbl>, TEN <dbl>, WAS <dbl>,
## #   avg_trg_team <dbl>, avg_rectd_plyr <dbl>, avg_tdr_team <dbl>,
## #   avg_rbra_team <dbl>, avg_rbry_plyr <dbl>, avg_rbry_pos <dbl>,
## #   avg_fuml_plyr <dbl>, avg_fuml_team <dbl>, avg_qbints_team <dbl>,
## #   avg_qbtdp_plyr <dbl>, avg_qbtdp_team <dbl>, grass_1 <dbl>,
## #   bad_weather_1 <dbl>
qplot(x=Var1, y=Var2, data=melt(cor(filtered_nfl_data_fields)), fill=value, geom="tile")+
  scale_fill_gradient2(limits=c(-1, 1))+
  theme(axis.text.x = element_text(angle = 90, hjust = 1, size = 5),
        axis.text.y = element_text(size = 5))

I tested cutoffs at 0.8, 0.85, 0.9 correlation, then removed the columns that were highly correlated at the 0.8 level.

Receiving Regressions

We have to set up our test and training data with preProcess:

set.seed(123)
split <- sample.split(nfl_data$recy, SplitRatio = 0.7)
TrainRecy <- subset(nfl_data, split == TRUE)
TestRecy <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(TrainRecy, method = c("center", "scale"))
trainTransformed <- predict(preProcValues, TrainRecy)
testTransformed <- predict(preProcValues, TestRecy)

We then inspect the relationships of the columns using ggpairs

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("recy",colnames(filtered_nfl_data_fields[46:51]))])

Now that we are ready to train and test the data, let’s do it!

Receiving Yards first run

#formula for not having to write everything out

wrrecyregform <- formula(paste("recy ~ ", 
                         paste(colnames(filtered_nfl_data_fields), collapse="+")))
#first run of the recy regression
linRegrecy <- lm(wrrecyregform, data = trainTransformed)
#updating formula to take out insignigicant values
linRegrecy2 <- update(linRegrecy, ~. -height- hot_weather - home_team_1-vertical1-BUF-DAL-DEN-GB
                      -NE-NOR-NYJ-SEA
                      -avg_trg_team-avg_tdr_team-avg_rbra_team-avg_fuml_plyr-avg_fuml_team
                      -avg_qbints_plyr
                      -avg_qbints_team-avg_qbtdp_team-bad_weather1)
#updating formulas to remove any insignificant values
linRegrecy3 <- update(linRegrecy2, ~. -JAC)
summary(linRegrecy3)
## 
## Call:
## lm(formula = recy ~ weight + cold_weather + forty1 + ARI + ATL + 
##     BAL + CAR + CHI + CIN + CLE + DET + HOU + IND + KC + MIA + 
##     MINN + NYG + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1, data = trainTransformed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5044 -0.4254 -0.1184  0.2391  7.5200 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -2.937e-15  4.841e-03   0.000 1.000000    
## weight         -6.762e-02  6.073e-03 -11.134  < 2e-16 ***
## cold_weather   -1.885e-02  5.015e-03  -3.759 0.000171 ***
## forty1         -4.724e-02  7.051e-03  -6.701 2.11e-11 ***
## ARI             1.569e-02  5.016e-03   3.129 0.001756 ** 
## ATL             1.962e-02  5.024e-03   3.904 9.47e-05 ***
## BAL             1.819e-02  5.014e-03   3.628 0.000286 ***
## CAR             1.267e-02  5.031e-03   2.518 0.011819 *  
## CHI             1.667e-02  5.013e-03   3.324 0.000887 ***
## CIN             1.229e-02  5.007e-03   2.455 0.014086 *  
## CLE             2.934e-02  5.054e-03   5.805 6.52e-09 ***
## DET             1.563e-02  5.009e-03   3.121 0.001806 ** 
## HOU             2.085e-02  5.027e-03   4.149 3.36e-05 ***
## IND             1.087e-02  5.008e-03   2.171 0.029942 *  
## KC              1.237e-02  5.058e-03   2.446 0.014468 *  
## MIA             1.340e-02  5.010e-03   2.675 0.007469 ** 
## MINN            1.335e-02  5.013e-03   2.663 0.007741 ** 
## NYG             1.433e-02  5.010e-03   2.859 0.004248 ** 
## OAK             1.420e-02  5.072e-03   2.800 0.005108 ** 
## PHI             1.711e-02  5.008e-03   3.416 0.000636 ***
## PIT             2.404e-02  5.044e-03   4.766 1.89e-06 ***
## SD              1.377e-02  5.042e-03   2.730 0.006333 ** 
## STL             1.214e-02  5.021e-03   2.417 0.015636 *  
## TB              1.037e-02  5.025e-03   2.064 0.039052 *  
## TEN             1.028e-02  5.042e-03   2.038 0.041578 *  
## WAS             1.921e-02  5.036e-03   3.815 0.000136 ***
## avg_rectd_plyr  5.394e-01  6.049e-03  89.176  < 2e-16 ***
## avg_rbry_plyr   4.649e-02  6.950e-03   6.689 2.29e-11 ***
## avg_rbry_pos   -7.193e-02  7.494e-03  -9.600  < 2e-16 ***
## avg_qbtdp_plyr -4.723e-02  5.861e-03  -8.057 8.13e-16 ***
## grass_1        -1.649e-02  5.271e-03  -3.128 0.001760 ** 
## bad_weather_1  -9.828e-03  4.915e-03  -1.999 0.045573 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8025 on 27452 degrees of freedom
## Multiple R-squared:  0.3567, Adjusted R-squared:  0.356 
## F-statistic:   491 on 31 and 27452 DF,  p-value: < 2.2e-16

Modest gains in r-square and residual standard error and we cut the variables down to just 3. R2 is not very strong 0.4277. This is an improvement (slightly) over the historical average only as the explanatory variable.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

RecyPredicted <- predict(linRegrecy3, newdata = testTransformed)

SSErecy <- sum((RecyPredicted - testTransformed$recy)^2)
SSTrecy <- sum((mean(c(testTransformed$recy, trainTransformed$recy))-testTransformed$recy)^2)
r2_recy <- 1 - SSErecy/SSTrecy 
r2_recy
## [1] 0.372254
rmse_recy <- sqrt(SSErecy/nrow(testTransformed))
rmse_recy
## [1] 0.7763582

Looking at the regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrecy3, which = c(1,2,3,5))

The residuals vs fitted appears to be okay for the model. The normal Q-Q looks okay, however, it may have some skewness to it. The scale-location does not seem to be ideal. The red line is not smooth, and there appears to be a gap in the data. The residuals vs leverage has some values that seem extreme.

The summary statistics are below.

confint(linRegrecy3)
##                        2.5 %        97.5 %
## (Intercept)    -0.0094882559  0.0094882559
## weight         -0.0795274473 -0.0557191232
## cold_weather   -0.0286793102 -0.0090208176
## forty1         -0.0610642220 -0.0334250908
## ARI             0.0058632903  0.0255259948
## ATL             0.0097682460  0.0294637762
## BAL             0.0083622071  0.0280189326
## CAR             0.0028054154  0.0225280288
## CHI             0.0068398849  0.0264926557
## CIN             0.0024791450  0.0221055179
## CLE             0.0194316899  0.0392452933
## DET             0.0058143275  0.0254512802
## HOU             0.0110002904  0.0307047052
## IND             0.0010562904  0.0206882581
## KC              0.0024557801  0.0222837058
## MIA             0.0035838450  0.0232233998
## MINN            0.0035260161  0.0231792969
## NYG             0.0045059231  0.0241468691
## OAK             0.0042619829  0.0241443427
## PHI             0.0072919585  0.0269223314
## PIT             0.0141504048  0.0339216782
## SD              0.0038833042  0.0236481674
## STL             0.0022968544  0.0219812473
## TB              0.0005210029  0.0202187408
## TEN             0.0003920961  0.0201581502
## WAS             0.0093422705  0.0290834158
## avg_rectd_plyr  0.5275582024  0.5512702914
## avg_rbry_plyr   0.0328656806  0.0601111735
## avg_rbry_pos   -0.0866224971 -0.0572471575
## avg_qbtdp_plyr -0.0587148793 -0.0357375061
## grass_1        -0.0268191284 -0.0061578226
## bad_weather_1  -0.0194620323 -0.0001935083
coef(summary(linRegrecy3))
##                     Estimate  Std. Error       t value     Pr(>|t|)
## (Intercept)    -2.937290e-15 0.004840822 -6.067751e-13 1.000000e+00
## weight         -6.762329e-02 0.006073396 -1.113435e+01 9.837517e-29
## cold_weather   -1.885006e-02 0.005014793 -3.758892e+00 1.710209e-04
## forty1         -4.724466e-02 0.007050617 -6.700783e+00 2.113140e-11
## ARI             1.569464e-02 0.005015867  3.128999e+00 1.755866e-03
## ATL             1.961601e-02 0.005024241  3.904274e+00 9.473462e-05
## BAL             1.819057e-02 0.005014342  3.627708e+00 2.864663e-04
## CAR             1.266672e-02 0.005031150  2.517660e+00 1.181939e-02
## CHI             1.666627e-02 0.005013333  3.324389e+00 8.872841e-04
## CIN             1.229233e-02 0.005006599  2.455226e+00 1.408576e-02
## CLE             2.933849e-02 0.005054361  5.804590e+00 6.523318e-09
## DET             1.563280e-02 0.005009298  3.120757e+00 1.805735e-03
## HOU             2.085250e-02 0.005026507  4.148507e+00 3.356579e-05
## IND             1.087227e-02 0.005008026  2.170970e+00 2.994199e-02
## KC              1.236974e-02 0.005058014  2.445573e+00 1.446845e-02
## MIA             1.340362e-02 0.005009962  2.675394e+00 7.468569e-03
## MINN            1.335266e-02 0.005013463  2.663360e+00 7.740977e-03
## NYG             1.432640e-02 0.005010317  2.859379e+00 4.247906e-03
## OAK             1.420316e-02 0.005071900  2.800363e+00 5.108079e-03
## PHI             1.710714e-02 0.005007619  3.416223e+00 6.358817e-04
## PIT             2.403604e-02 0.005043563  4.765687e+00 1.891737e-06
## SD              1.376574e-02 0.005041927  2.730253e+00 6.332615e-03
## STL             1.213905e-02 0.005021400  2.417464e+00 1.563557e-02
## TB              1.036987e-02 0.005024804  2.063737e+00 3.905207e-02
## TEN             1.027512e-02 0.005042231  2.037813e+00 4.157822e-02
## WAS             1.921284e-02 0.005035877  3.815193e+00 1.363745e-04
## avg_rectd_plyr  5.394142e-01 0.006048847  8.917638e+01 0.000000e+00
## avg_rbry_plyr   4.648843e-02 0.006950202  6.688788e+00 2.293467e-11
## avg_rbry_pos   -7.193483e-02 0.007493516 -9.599609e+00 8.683028e-22
## avg_qbtdp_plyr -4.722619e-02 0.005861424 -8.057119e+00 8.125991e-16
## grass_1        -1.648848e-02 0.005270606 -3.128383e+00 1.759546e-03
## bad_weather_1  -9.827770e-03 0.004915313 -1.999419e+00 4.557289e-02
anova(linRegrecy3)
## Analysis of Variance Table
## 
## Response: recy
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## weight             1   286.5   286.5   444.7939 < 2.2e-16 ***
## cold_weather       1    17.7    17.7    27.4087 1.659e-07 ***
## forty1             1  1096.0  1096.0  1701.7895 < 2.2e-16 ***
## ARI                1     1.6     1.6     2.4409 0.1182194    
## ATL                1    22.2    22.2    34.5178 4.272e-09 ***
## BAL                1     0.0     0.0     0.0026 0.9592773    
## CAR                1     3.4     3.4     5.2935 0.0214132 *  
## CHI                1     0.0     0.0     0.0001 0.9922825    
## CIN                1     0.0     0.0     0.0696 0.7919203    
## CLE                1     1.6     1.6     2.4396 0.1183183    
## DET                1    13.6    13.6    21.1018 4.375e-06 ***
## HOU                1     0.8     0.8     1.2155 0.2702583    
## IND                1     1.2     1.2     1.9041 0.1676280    
## KC                 1    13.8    13.8    21.3793 3.785e-06 ***
## MIA                1     0.1     0.1     0.1325 0.7158119    
## MINN               1     8.8     8.8    13.6466 0.0002211 ***
## NYG                1     7.1     7.1    11.0093 0.0009078 ***
## OAK                1    12.5    12.5    19.3499 1.092e-05 ***
## PHI                1     1.5     1.5     2.3813 0.1228075    
## PIT                1    10.1    10.1    15.6244 7.745e-05 ***
## SD                 1     8.7     8.7    13.5839 0.0002286 ***
## STL                1     3.6     3.6     5.6376 0.0175859 *  
## TB                 1     0.9     0.9     1.3868 0.2389488    
## TEN                1     6.5     6.5    10.0632 0.0015142 ** 
## WAS                1     2.1     2.1     3.2224 0.0726498 .  
## avg_rectd_plyr     1  8183.3  8183.3 12705.9907 < 2.2e-16 ***
## avg_rbry_plyr      1     0.1     0.1     0.2085 0.6479341    
## avg_rbry_pos       1    47.9    47.9    74.4186 < 2.2e-16 ***
## avg_qbtdp_plyr     1    42.0    42.0    65.1375 7.268e-16 ***
## grass_1            1     6.5     6.5    10.1376 0.0014544 ** 
## bad_weather_1      1     2.6     2.6     3.9977 0.0455729 *  
## Residuals      27452 17680.4     0.6                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

I would say overall, the model is just okay for predicting. The average yards receiving historical for the player is really the best predictor according to this analysis

Now we inspect the AIC:

#aic 
aic_recy <- step(lm(wrrecyregform, data = trainTransformed), direction = "backward")

AIC appeared to be very similar to linear regression

summary(aic_recy)
## 
## Call:
## lm(formula = recy ~ weight + cold_weather + forty1 + ARI + ATL + 
##     BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + DET + HOU + 
##     IND + JAC + KC + MIA + MINN + NE + NOR + NYG + NYJ + OAK + 
##     PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1, data = trainTransformed)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5030 -0.4258 -0.1160  0.2370  7.5191 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -3.184e-15  4.840e-03   0.000 1.000000    
## weight         -6.637e-02  6.101e-03 -10.878  < 2e-16 ***
## cold_weather   -1.787e-02  5.057e-03  -3.534 0.000411 ***
## forty1         -4.917e-02  7.128e-03  -6.899 5.36e-12 ***
## ARI             2.526e-02  5.493e-03   4.598 4.28e-06 ***
## ATL             2.943e-02  5.518e-03   5.333 9.73e-08 ***
## BAL             2.790e-02  5.504e-03   5.069 4.02e-07 ***
## BUF             1.026e-02  5.471e-03   1.876 0.060685 .  
## CAR             2.189e-02  5.476e-03   3.997 6.44e-05 ***
## CHI             2.558e-02  5.430e-03   4.712 2.47e-06 ***
## CIN             2.179e-02  5.476e-03   3.980 6.91e-05 ***
## CLE             3.847e-02  5.488e-03   7.009 2.46e-12 ***
## DAL             1.395e-02  5.488e-03   2.542 0.011022 *  
## DEN             1.115e-02  5.511e-03   2.023 0.043122 *  
## DET             2.515e-02  5.478e-03   4.591 4.44e-06 ***
## HOU             3.063e-02  5.518e-03   5.551 2.87e-08 ***
## IND             2.048e-02  5.489e-03   3.731 0.000191 ***
## JAC             1.675e-02  5.455e-03   3.070 0.002142 ** 
## KC              2.166e-02  5.507e-03   3.933 8.40e-05 ***
## MIA             2.262e-02  5.452e-03   4.148 3.36e-05 ***
## MINN            2.266e-02  5.466e-03   4.145 3.41e-05 ***
## NE              1.767e-02  5.598e-03   3.157 0.001598 ** 
## NOR             1.389e-02  5.574e-03   2.491 0.012734 *  
## NYG             2.403e-02  5.497e-03   4.372 1.24e-05 ***
## NYJ             1.380e-02  5.491e-03   2.513 0.011972 *  
## OAK             2.370e-02  5.541e-03   4.277 1.90e-05 ***
## PHI             2.610e-02  5.431e-03   4.806 1.55e-06 ***
## PIT             3.337e-02  5.496e-03   6.072 1.28e-09 ***
## SD              2.293e-02  5.475e-03   4.188 2.82e-05 ***
## STL             2.161e-02  5.486e-03   3.940 8.17e-05 ***
## TB              1.962e-02  5.470e-03   3.588 0.000334 ***
## TEN             1.955e-02  5.491e-03   3.561 0.000370 ***
## WAS             2.851e-02  5.489e-03   5.194 2.07e-07 ***
## avg_rectd_plyr  5.389e-01  6.112e-03  88.171  < 2e-16 ***
## avg_rbry_plyr   4.703e-02  6.959e-03   6.758 1.43e-11 ***
## avg_rbry_pos   -7.291e-02  7.522e-03  -9.693  < 2e-16 ***
## avg_qbtdp_plyr -4.680e-02  5.874e-03  -7.967 1.69e-15 ***
## grass_1        -1.474e-02  5.432e-03  -2.715 0.006639 ** 
## bad_weather_1  -9.532e-03  4.921e-03  -1.937 0.052763 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8023 on 27445 degrees of freedom
## Multiple R-squared:  0.3572, Adjusted R-squared:  0.3563 
## F-statistic: 401.3 on 38 and 27445 DF,  p-value: < 2.2e-16

We then run this analysis through randomForest:

forest_recy <- randomForest(wrrecyregform, data = trainTransformed, 
                            importance = TRUE, ntree = 500)
plot(forest_recy)

varImpPlot(forest_recy)

Receptions

Preprocess:

set.seed(123)
splitrec <- sample.split(nfl_data$rec, SplitRatio = 0.7)
TrainRec <- subset(nfl_data, split == TRUE)
TestRec <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(TrainRec, method = c("center", "scale"))
trainTransformedrec <- predict(preProcValues, TrainRec)
testTransformedrec <- predict(preProcValues, TestRec)

ggpairs:

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("rec",colnames(filtered_nfl_data_fields[46:51]))])

####Regressions

recregform <- formula(paste("rec ~ ", 
                               paste(colnames(filtered_nfl_data_fields), collapse="+")))



linRegrec <- lm(recregform, data = trainTransformedrec)
summary(linRegrec)
  
linRegrec2 <- update(linRegrec, ~. -hot_weather -forty1 -GB - SEA -avg_trg_team -avg_tdr_team
                     -avg_rbra_team -avg_fuml_team -avg_qbtdp_team - avg_qbints_team)
summary(linRegrec2)
## 
## Call:
## lm(formula = rec ~ height + weight + cold_weather + home_team_1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + HOU + IND + JAC + KC + MIA + MINN + NE + 
##     NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1, data = trainTransformedrec)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4209 -0.5034 -0.1309  0.3328  6.4705 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -4.117e-15  4.892e-03   0.000 1.000000    
## height         -5.471e-02  9.491e-03  -5.764 8.30e-09 ***
## weight         -2.930e-02  8.141e-03  -3.599 0.000320 ***
## cold_weather   -1.831e-02  5.123e-03  -3.575 0.000351 ***
## home_team_1    -1.155e-02  5.322e-03  -2.171 0.029960 *  
## vertical1      -4.085e-03  5.539e-03  -0.737 0.460839    
## ARI             2.666e-02  5.614e-03   4.749 2.05e-06 ***
## ATL             3.730e-02  5.633e-03   6.623 3.59e-11 ***
## BAL             3.765e-02  5.566e-03   6.765 1.36e-11 ***
## BUF             1.944e-02  5.550e-03   3.503 0.000460 ***
## CAR             1.562e-02  5.537e-03   2.820 0.004799 ** 
## CHI             3.435e-02  5.517e-03   6.226 4.85e-10 ***
## CIN             3.262e-02  5.545e-03   5.883 4.07e-09 ***
## CLE             4.498e-02  5.565e-03   8.084 6.53e-16 ***
## DAL             2.017e-02  5.601e-03   3.601 0.000317 ***
## DEN             1.502e-02  5.578e-03   2.693 0.007076 ** 
## DET             3.750e-02  5.571e-03   6.733 1.70e-11 ***
## HOU             3.675e-02  5.638e-03   6.517 7.28e-11 ***
## IND             3.111e-02  5.584e-03   5.571 2.56e-08 ***
## JAC             2.900e-02  5.522e-03   5.251 1.52e-07 ***
## KC              3.215e-02  5.575e-03   5.767 8.16e-09 ***
## MIA             2.886e-02  5.521e-03   5.227 1.73e-07 ***
## MINN            3.747e-02  5.549e-03   6.752 1.49e-11 ***
## NE              1.674e-02  5.633e-03   2.971 0.002969 ** 
## NOR             3.146e-02  5.652e-03   5.566 2.64e-08 ***
## NYG             2.637e-02  5.564e-03   4.741 2.14e-06 ***
## NYJ             1.466e-02  5.568e-03   2.632 0.008481 ** 
## OAK             3.227e-02  5.625e-03   5.737 9.74e-09 ***
## PHI             2.928e-02  5.505e-03   5.319 1.05e-07 ***
## PIT             3.819e-02  5.564e-03   6.863 6.89e-12 ***
## SD              2.956e-02  5.545e-03   5.331 9.86e-08 ***
## STL             2.873e-02  5.595e-03   5.135 2.85e-07 ***
## TB              1.688e-02  5.539e-03   3.048 0.002303 ** 
## TEN             2.255e-02  5.564e-03   4.052 5.08e-05 ***
## WAS             3.198e-02  5.557e-03   5.755 8.73e-09 ***
## avg_rectd_plyr  5.423e-01  6.172e-03  87.875  < 2e-16 ***
## avg_rbry_plyr   1.315e-01  7.367e-03  17.849  < 2e-16 ***
## avg_rbry_pos   -7.500e-02  8.704e-03  -8.617  < 2e-16 ***
## avg_fuml_plyr  -7.142e-03  7.223e-03  -0.989 0.322784    
## avg_qbtdp_plyr -1.016e-01  7.524e-03 -13.506  < 2e-16 ***
## grass_1        -1.263e-02  5.550e-03  -2.275 0.022914 *  
## bad_weather_1  -1.047e-02  4.976e-03  -2.104 0.035390 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.811 on 27442 degrees of freedom
## Multiple R-squared:  0.3432, Adjusted R-squared:  0.3422 
## F-statistic: 349.8 on 41 and 27442 DF,  p-value: < 2.2e-16

We had a modest r-square improvement. The R2 is not very strong (0.4457), and we achieved approximately the same value when we cut the variables down to just 6. Much simpler model with similar results

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

RecPredicted <- predict(linRegrec2, newdata = testTransformedrec)

SSErec <- sum((RecPredicted - testTransformedrec$rec)^2)
SSTrec <- sum((mean(c(testTransformedrec$rec,trainTransformedrec$rec))-testTransformedrec$rec)^2)
r2_rec <- 1 - SSErec/SSTrec 
r2_rec
## [1] 0.3614972
rmse_rec <- sqrt(SSErec/nrow(testTransformedrec))
rmse_rec
## [1] 0.7969974

Looking at the regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrec2, which = c(1,2,3,5))

The charts show very similarly to what we saw above for receiving yards.

The summary statistics are below:

confint(linRegrec2)
##                       2.5 %        97.5 %
## (Intercept)    -0.009588716  0.0095887159
## height         -0.073311748 -0.0361050567
## weight         -0.045255501 -0.0133437044
## cold_weather   -0.028355199 -0.0082735662
## home_team_1    -0.021982346 -0.0011211872
## vertical1      -0.014940648  0.0067714074
## ARI             0.015659421  0.0376682885
## ATL             0.026264525  0.0483453015
## BAL             0.026742150  0.0485595637
## BUF             0.008565760  0.0303229949
## CAR             0.004764205  0.0264702673
## CHI             0.023535464  0.0451622569
## CIN             0.021751469  0.0434865873
## CLE             0.034077046  0.0558912642
## DAL             0.009192547  0.0311496124
## DEN             0.004090978  0.0259579177
## DET             0.026585238  0.0484223772
## HOU             0.025694103  0.0477960158
## IND             0.020163375  0.0420543502
## JAC             0.018173687  0.0398186007
## KC              0.021223060  0.0430769410
## MIA             0.018036876  0.0396783173
## MINN            0.026591036  0.0483440036
## NE              0.005695593  0.0277778225
## NOR             0.020379366  0.0425360434
## NYG             0.015470120  0.0372797756
## NYJ             0.003744224  0.0255720611
## OAK             0.021246695  0.0432984222
## PHI             0.018488304  0.0400684540
## PIT             0.027280183  0.0490917161
## SD              0.018690394  0.0404276600
## STL             0.017761430  0.0396942051
## TB              0.006028188  0.0277415125
## TEN             0.011642942  0.0334557042
## WAS             0.021089472  0.0428718167
## avg_rectd_plyr  0.530241430  0.5544352471
## avg_rbry_plyr   0.117052640  0.1459311941
## avg_rbry_pos   -0.092064124 -0.0579440215
## avg_fuml_plyr  -0.021300372  0.0070158912
## avg_qbtdp_plyr -0.116366581 -0.0868717574
## grass_1        -0.023503224 -0.0017478469
## bad_weather_1  -0.020222651 -0.0007161738
coef(summary(linRegrec2))
##                     Estimate  Std. Error       t value     Pr(>|t|)
## (Intercept)    -4.117011e-15 0.004892076 -8.415672e-13 1.000000e+00
## height         -5.470840e-02 0.009491259 -5.764083e+00 8.298176e-09
## weight         -2.929960e-02 0.008140555 -3.599214e+00 3.197418e-04
## cold_weather   -1.831438e-02 0.005122734 -3.575119e+00 3.506695e-04
## home_team_1    -1.155177e-02 0.005321587 -2.170737e+00 2.995960e-02
## vertical1      -4.084620e-03 0.005538647 -7.374762e-01 4.608391e-01
## ARI             2.666385e-02 0.005614363  4.749222e+00 2.052317e-06
## ATL             3.730491e-02 0.005632706  6.622911e+00 3.586973e-11
## BAL             3.765086e-02 0.005565523  6.765016e+00 1.359713e-11
## BUF             1.944438e-02 0.005550172  3.503383e+00 4.601199e-04
## CAR             1.561724e-02 0.005537118  2.820463e+00 4.798883e-03
## CHI             3.434886e-02 0.005516897  6.226120e+00 4.850519e-10
## CIN             3.261903e-02 0.005544530  5.883100e+00 4.073201e-09
## CLE             4.498416e-02 0.005564708  8.083830e+00 6.532687e-16
## DAL             2.017108e-02 0.005601148  3.601240e+00 3.172614e-04
## DEN             1.502445e-02 0.005578157  2.693443e+00 7.076126e-03
## DET             3.750381e-02 0.005570555  6.732508e+00 1.700495e-11
## HOU             3.674506e-02 0.005638098  6.517279e+00 7.283502e-11
## IND             3.110886e-02 0.005584289  5.570783e+00 2.559725e-08
## JAC             2.899614e-02 0.005521520  5.251479e+00 1.520063e-07
## KC              3.215000e-02 0.005574826  5.766996e+00 8.156229e-09
## MIA             2.885760e-02 0.005520634  5.227225e+00 1.733312e-07
## MINN            3.746752e-02 0.005549084  6.752019e+00 1.487078e-11
## NE              1.673671e-02 0.005633077  2.971149e+00 2.969453e-03
## NOR             3.145770e-02 0.005652068  5.565698e+00 2.635426e-08
## NYG             2.637495e-02 0.005563544  4.740674e+00 2.140769e-06
## NYJ             1.465814e-02 0.005568182  2.632482e+00 8.481086e-03
## OAK             3.227256e-02 0.005625296  5.737042e+00 9.735669e-09
## PHI             2.927838e-02 0.005504999  5.318508e+00 1.054402e-07
## PIT             3.818595e-02 0.005564024  6.863010e+00 6.885796e-12
## SD              2.955903e-02 0.005545078  5.330678e+00 9.861900e-08
## STL             2.872782e-02 0.005594952  5.134596e+00 2.846801e-07
## TB              1.688485e-02 0.005538971  3.048373e+00 2.303029e-03
## TEN             2.254932e-02 0.005564337  4.052473e+00 5.081867e-05
## WAS             3.198064e-02 0.005556578  5.755457e+00 8.732710e-09
## avg_rectd_plyr  5.423383e-01 0.006171733  8.787456e+01 0.000000e+00
## avg_rbry_plyr   1.314919e-01 0.007366788  1.784929e+01 7.370893e-71
## avg_rbry_pos   -7.500407e-02 0.008703884 -8.617311e+00 7.216658e-18
## avg_fuml_plyr  -7.142240e-03 0.007223351 -9.887711e-01 3.227839e-01
## avg_qbtdp_plyr -1.016192e-01 0.007523996 -1.350601e+01 1.955406e-41
## grass_1        -1.262554e-02 0.005549698 -2.274995e+00 2.291391e-02
## bad_weather_1  -1.046941e-02 0.004976014 -2.103976e+00 3.538965e-02
anova(linRegrec2)
## Analysis of Variance Table
## 
## Response: rec
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## height             1     0.2     0.2     0.3588 0.5491700    
## weight             1   326.5   326.5   496.4268 < 2.2e-16 ***
## cold_weather       1    20.0    20.0    30.4066 3.535e-08 ***
## home_team_1        1    12.3    12.3    18.7076 1.529e-05 ***
## vertical1          1   748.4   748.4  1137.8367 < 2.2e-16 ***
## ARI                1     3.5     3.5     5.2794 0.0215870 *  
## ATL                1    36.6    36.6    55.6655 8.846e-14 ***
## BAL                1     0.6     0.6     0.9800 0.3222059    
## BUF                1     2.2     2.2     3.3080 0.0689538 .  
## CAR                1     8.1     8.1    12.3639 0.0004384 ***
## CHI                1     0.5     0.5     0.8096 0.3682460    
## CIN                1     0.2     0.2     0.3079 0.5789480    
## CLE                1     3.9     3.9     5.9089 0.0150710 *  
## DAL                1     4.1     4.1     6.2492 0.0124309 *  
## DEN                1     0.3     0.3     0.3959 0.5292150    
## DET                1    12.9    12.9    19.6460 9.356e-06 ***
## HOU                1     0.1     0.1     0.0928 0.7606060    
## IND                1     2.3     2.3     3.4616 0.0628218 .  
## JAC                1     3.2     3.2     4.9407 0.0262397 *  
## KC                 1     4.3     4.3     6.4946 0.0108256 *  
## MIA                1     1.2     1.2     1.7795 0.1822205    
## MINN               1     6.7     6.7    10.1983 0.0014073 ** 
## NE                 1    47.7    47.7    72.5198 < 2.2e-16 ***
## NOR                1    32.1    32.1    48.7564 2.964e-12 ***
## NYG                1     6.3     6.3     9.5470 0.0020048 ** 
## NYJ                1    13.5    13.5    20.4518 6.141e-06 ***
## OAK                1     3.6     3.6     5.4105 0.0200235 *  
## PHI                1     7.7     7.7    11.7561 0.0006073 ***
## PIT                1    18.4    18.4    27.9729 1.240e-07 ***
## SD                 1    13.8    13.8    21.0393 4.520e-06 ***
## STL                1     0.0     0.0     0.0049 0.9444320    
## TB                 1     0.1     0.1     0.1522 0.6964744    
## TEN                1     5.5     5.5     8.2967 0.0039749 ** 
## WAS                1     1.6     1.6     2.4295 0.1190812    
## avg_rectd_plyr     1  7645.2  7645.2 11623.1297 < 2.2e-16 ***
## avg_rbry_plyr      1   159.2   159.2   242.0776 < 2.2e-16 ***
## avg_rbry_pos       1    62.5    62.5    95.0615 < 2.2e-16 ***
## avg_fuml_plyr      1    90.7    90.7   137.8181 < 2.2e-16 ***
## avg_qbtdp_plyr     1   120.3   120.3   182.8737 < 2.2e-16 ***
## grass_1            1     3.6     3.6     5.4809 0.0192327 *  
## bad_weather_1      1     2.9     2.9     4.4267 0.0353896 *  
## Residuals      27442 18050.2     0.7                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Like the model above, linear regression may not be the best predictor for this statistic

AIC:

aic_rec <- step(lm(recregform, data = TrainRecy), direction = "backward")

AIC appeared to be very similar to the linear regression

summary(aic_rec)
## 
## Call:
## lm(formula = rec ~ height + weight + cold_weather + home_team_1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + HOU + IND + JAC + KC + MIA + MINN + NE + NOR + NYG + 
##     NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1, data = TrainRecy)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.8406 -1.1542 -0.3057  0.7649 14.8589 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     4.4288403  0.4343537  10.196  < 2e-16 ***
## height         -0.0436825  0.0074728  -5.846 5.11e-09 ***
## weight         -0.0025568  0.0007415  -3.448 0.000565 ***
## cold_weather   -0.0973798  0.0273094  -3.566 0.000363 ***
## home_team_1    -0.0546094  0.0250378  -2.181 0.029186 *  
## ARI             0.3502418  0.0742707   4.716 2.42e-06 ***
## ATL             0.4948539  0.0739367   6.693 2.23e-11 ***
## BAL             0.4846370  0.0717221   6.757 1.44e-11 ***
## BUF             0.2587108  0.0742520   3.484 0.000494 ***
## CAR             0.2035673  0.0733810   2.774 0.005539 ** 
## CHI             0.4679192  0.0754847   6.199 5.77e-10 ***
## CIN             0.4348333  0.0739210   5.882 4.09e-09 ***
## CLE             0.5944355  0.0741039   8.022 1.08e-15 ***
## DAL             0.2670033  0.0743147   3.593 0.000328 ***
## DEN             0.1894232  0.0718750   2.635 0.008407 ** 
## DET             0.5004710  0.0749460   6.678 2.47e-11 ***
## HOU             0.4798583  0.0737354   6.508 7.76e-11 ***
## IND             0.4077489  0.0737564   5.528 3.26e-08 ***
## JAC             0.3915629  0.0752240   5.205 1.95e-07 ***
## KC              0.4193124  0.0730046   5.744 9.36e-09 ***
## MIA             0.3881579  0.0744144   5.216 1.84e-07 ***
## MINN            0.5038827  0.0750977   6.710 1.99e-11 ***
## NE              0.2196340  0.0713348   3.079 0.002080 ** 
## NOR             0.3944542  0.0708541   5.567 2.61e-08 ***
## NYG             0.3437778  0.0726963   4.729 2.27e-06 ***
## NYJ             0.1864476  0.0731151   2.550 0.010776 *  
## OAK             0.4154240  0.0724924   5.731 1.01e-08 ***
## PHI             0.3970076  0.0751356   5.284 1.27e-07 ***
## PIT             0.4949440  0.0724579   6.831 8.62e-12 ***
## SD              0.3999331  0.0750317   5.330 9.89e-08 ***
## STL             0.3874373  0.0754529   5.135 2.84e-07 ***
## TB              0.2247123  0.0743276   3.023 0.002503 ** 
## TEN             0.2949138  0.0737838   3.997 6.43e-05 ***
## WAS             0.4150453  0.0728965   5.694 1.26e-08 ***
## avg_rectd_plyr  7.9343003  0.0895911  88.561  < 2e-16 ***
## avg_rbry_plyr   0.0154780  0.0008331  18.579  < 2e-16 ***
## avg_rbry_pos   -0.0127897  0.0014821  -8.629  < 2e-16 ***
## avg_qbtdp_plyr -0.5338136  0.0290800 -18.357  < 2e-16 ***
## grass_1        -0.0577780  0.0254762  -2.268 0.023342 *  
## bad_weather_1  -0.1064256  0.0506219  -2.102 0.035531 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.861 on 27444 degrees of freedom
## Multiple R-squared:  0.3432, Adjusted R-squared:  0.3423 
## F-statistic: 367.7 on 39 and 27444 DF,  p-value: < 2.2e-16

We then run this through randomForest:

forest_rec <- randomForest(recregform, data = trainTransformedrec, 
                            importance = TRUE, ntree = 500)
plot(forest_rec)

varImpPlot(forest_rec)

forest_rec
## 
## Call:
##  randomForest(formula = recregform, data = trainTransformedrec,      importance = TRUE, ntree = 500) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 17
## 
##           Mean of squared residuals: 0.5854199
##                     % Var explained: 41.46

Targets

Preprocess:

set.seed(123)
splittrg <- sample.split(nfl_data$trg, SplitRatio = 0.7)
Traintrg <- subset(nfl_data, split == TRUE)
Testtrg <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintrg, method = c("center", "scale"))
trainTransformedtrg <- predict(preProcValues, Traintrg)
testTransformedtrg <- predict(preProcValues, Testtrg)

ggpairs:

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("trg",colnames(filtered_nfl_data_fields[46:51]))])

trgregform <- formula(paste("trg ~ ", 
                            paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegtrg <- lm(trgregform, data = trainTransformedtrg)

summary(linRegtrg)

linRegtrg2 <- update(linRegtrg, ~. -height-cold_weather-hot_weather-forty1-vertical1-DAL-DEN-GB-NE-NOR-SEA
                 -avg_trg_team -avg_tdr_team-avg_rbra_team -avg_fuml_team -avg_qbtdp_team 
                 -avg_qbints_team - grass_1-bad_weather_1)
summary(linRegtrg2)
## 
## Call:
## lm(formula = trg ~ weight + home_team_1 + ARI + ATL + BAL + BUF + 
##     CAR + CHI + CIN + CLE + DET + HOU + IND + JAC + KC + MIA + 
##     MINN + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr, data = trainTransformedtrg)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8593 -0.4634 -0.1128  0.3281  5.3615 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -1.617e-15  4.573e-03   0.000 1.000000    
## weight         -1.000e-01  4.631e-03 -21.594  < 2e-16 ***
## home_team_1    -1.995e-02  4.823e-03  -4.137 3.53e-05 ***
## ARI             3.395e-02  4.851e-03   6.998 2.65e-12 ***
## ATL             2.430e-02  4.838e-03   5.023 5.12e-07 ***
## BAL             3.640e-02  4.823e-03   7.547 4.60e-14 ***
## BUF             2.220e-02  4.806e-03   4.620 3.85e-06 ***
## CAR             2.035e-02  4.811e-03   4.230 2.35e-05 ***
## CHI             2.459e-02  4.801e-03   5.121 3.07e-07 ***
## CIN             2.530e-02  4.804e-03   5.267 1.40e-07 ***
## CLE             4.859e-02  4.839e-03  10.040  < 2e-16 ***
## DET             3.359e-02  4.811e-03   6.982 2.97e-12 ***
## HOU             3.599e-02  4.859e-03   7.407 1.33e-13 ***
## IND             3.378e-02  4.822e-03   7.006 2.51e-12 ***
## JAC             3.626e-02  4.795e-03   7.560 4.14e-14 ***
## KC              2.514e-02  4.825e-03   5.211 1.89e-07 ***
## MIA             2.625e-02  4.798e-03   5.471 4.51e-08 ***
## MINN            3.226e-02  4.816e-03   6.699 2.14e-11 ***
## NYG             2.505e-02  4.808e-03   5.209 1.91e-07 ***
## NYJ             2.517e-02  4.822e-03   5.219 1.81e-07 ***
## OAK             2.971e-02  4.823e-03   6.160 7.39e-10 ***
## PHI             2.672e-02  4.802e-03   5.564 2.66e-08 ***
## PIT             2.404e-02  4.811e-03   4.997 5.85e-07 ***
## SD              1.560e-02  4.791e-03   3.257 0.001128 ** 
## STL             3.048e-02  4.848e-03   6.288 3.27e-10 ***
## TB              2.000e-02  4.806e-03   4.161 3.17e-05 ***
## TEN             2.184e-02  4.823e-03   4.527 6.00e-06 ***
## WAS             2.395e-02  4.822e-03   4.966 6.87e-07 ***
## avg_rectd_plyr  5.810e-01  5.664e-03 102.579  < 2e-16 ***
## avg_rbry_plyr   1.091e-01  6.871e-03  15.871  < 2e-16 ***
## avg_rbry_pos   -9.647e-02  7.087e-03 -13.613  < 2e-16 ***
## avg_fuml_plyr  -2.280e-02  6.723e-03  -3.391 0.000696 ***
## avg_qbtdp_plyr -1.057e-01  6.619e-03 -15.977  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.758 on 27451 degrees of freedom
## Multiple R-squared:  0.426,  Adjusted R-squared:  0.4254 
## F-statistic: 636.7 on 32 and 27451 DF,  p-value: < 2.2e-16

Modest gains in second run’s R2. It is a much more simple model, and has a little better descriptive stats.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

TrgPredicted <- predict(linRegtrg2, newdata = testTransformedtrg)

SSEtrg <- sum((TrgPredicted - testTransformedtrg$trg)^2)
SSTtrg <- sum((mean(c(testTransformedtrg$trg, trainTransformedtrg$trg))-testTransformedtrg$trg)^2)
r2_trg <- 1 - SSEtrg/SSTtrg 
r2_trg
## [1] 0.4433043
rmse_trg <- sqrt(SSEtrg/nrow(testTransformedtrg))
rmse_trg
## [1] 0.7421937

The regression plots for targets are below:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegrec2, which = c(1:3,5))

Here are additional summary statistics:

confint(linRegtrg2)
##                       2.5 %       97.5 %
## (Intercept)    -0.008962372  0.008962372
## weight         -0.109072460 -0.090919689
## home_team_1    -0.029407521 -0.010499863
## ARI             0.024443139  0.043461176
## ATL             0.014816272  0.033779985
## BAL             0.026945513  0.045852511
## BUF             0.012784765  0.031622921
## CAR             0.010919267  0.029777561
## CHI             0.015174471  0.033995707
## CIN             0.015884937  0.034717487
## CLE             0.039102914  0.058073333
## DET             0.024163320  0.043024446
## HOU             0.026466108  0.045512540
## IND             0.024332465  0.043237109
## JAC             0.026856263  0.045654833
## KC              0.015685651  0.034600137
## MIA             0.016847793  0.035657765
## MINN            0.022823096  0.041702343
## NYG             0.015622503  0.034469521
## NYJ             0.015717405  0.034621023
## OAK             0.020253373  0.039158780
## PHI             0.017304578  0.036128312
## PIT             0.014610681  0.033468501
## SD              0.006212349  0.024992919
## STL             0.020979488  0.039984055
## TB              0.010580046  0.029420028
## TEN             0.012383540  0.031291995
## WAS             0.014495624  0.033398144
## avg_rectd_plyr  0.569942774  0.592147559
## avg_rbry_plyr   0.095582869  0.122518021
## avg_rbry_pos   -0.110362600 -0.082581821
## avg_fuml_plyr  -0.035976124 -0.009622626
## avg_qbtdp_plyr -0.118718776 -0.092772666
coef(summary(linRegtrg2))
##                     Estimate  Std. Error       t value      Pr(>|t|)
## (Intercept)    -1.616974e-15 0.004572521 -3.536285e-13  1.000000e+00
## weight         -9.999607e-02 0.004630690 -2.159421e+01 1.455031e-102
## home_team_1    -1.995369e-02 0.004823258 -4.136974e+00  3.529640e-05
## ARI             3.395216e-02 0.004851415  6.998403e+00  2.648420e-12
## ATL             2.429813e-02 0.004837557  5.022809e+00  5.124010e-07
## BAL             3.639901e-02 0.004823090  7.546825e+00  4.598244e-14
## BUF             2.220384e-02 0.004805528  4.620479e+00  3.845937e-06
## CAR             2.034841e-02 0.004810665  4.229854e+00  2.346000e-05
## CHI             2.458509e-02 0.004801212  5.120601e+00  3.066202e-07
## CIN             2.530121e-02 0.004804098  5.266589e+00  1.400281e-07
## CLE             4.858812e-02 0.004839268  1.004039e+01  1.112750e-23
## DET             3.359388e-02 0.004811388  6.982160e+00  2.972888e-12
## HOU             3.598932e-02 0.004858659  7.407255e+00  1.326510e-13
## IND             3.378479e-02 0.004822489  7.005674e+00  2.514675e-12
## JAC             3.625555e-02 0.004795430  7.560437e+00  4.142604e-14
## KC              2.514289e-02 0.004825000  5.210963e+00  1.892202e-07
## MIA             2.625278e-02 0.004798339  5.471222e+00  4.508438e-08
## MINN            3.226272e-02 0.004816010  6.699055e+00  2.138233e-11
## NYG             2.504601e-02 0.004807789  5.209465e+00  1.907521e-07
## NYJ             2.516921e-02 0.004822228  5.219416e+00  1.807925e-07
## OAK             2.970608e-02 0.004822684  6.159657e+00  7.391443e-10
## PHI             2.671644e-02 0.004801849  5.563782e+00  2.664494e-08
## PIT             2.403959e-02 0.004810545  4.997270e+00  5.850484e-07
## SD              1.560263e-02 0.004790839  3.256765e+00  1.128265e-03
## STL             3.048177e-02 0.004847979  6.287521e+00  3.274283e-10
## TB              2.000004e-02 0.004805994  4.161478e+00  3.171574e-05
## TEN             2.183777e-02 0.004823461  4.527406e+00  5.996295e-06
## WAS             2.394688e-02 0.004821948  4.966227e+00  6.867755e-07
## avg_rectd_plyr  5.810452e-01 0.005664340  1.025795e+02  0.000000e+00
## avg_rbry_plyr   1.090504e-01 0.006871035  1.587104e+01  1.794185e-56
## avg_rbry_pos   -9.647221e-02 0.007086751 -1.361304e+01  4.589358e-42
## avg_fuml_plyr  -2.279937e-02 0.006722658 -3.391423e+00  6.962880e-04
## avg_qbtdp_plyr -1.057457e-01 0.006618735 -1.597673e+01  3.363564e-57
anova(linRegtrg2)
## Analysis of Variance Table
## 
## Response: trg
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## weight             1   359.6   359.6   625.8500 < 2.2e-16 ***
## home_team_1        1    18.1    18.1    31.4392 2.078e-08 ***
## ARI                1     0.2     0.2     0.3197  0.571799    
## ATL                1     6.1     6.1    10.6206  0.001120 ** 
## BAL                1     0.9     0.9     1.6206  0.203025    
## BUF                1     0.8     0.8     1.3448  0.246194    
## CAR                1     0.6     0.6     1.0163  0.313413    
## CHI                1     0.0     0.0     0.0073  0.932089    
## CIN                1     0.3     0.3     0.5180  0.471689    
## CLE                1     0.0     0.0     0.0621  0.803255    
## DET                1    21.4    21.4    37.2209 1.069e-09 ***
## HOU                1     1.1     1.1     1.8455  0.174323    
## IND                1    11.6    11.6    20.1547 7.171e-06 ***
## JAC                1     2.0     2.0     3.4702  0.062494 .  
## KC                 1     6.0     6.0    10.4925  0.001200 ** 
## MIA                1     0.7     0.7     1.2103  0.271286    
## MINN               1     1.0     1.0     1.7083  0.191223    
## NYG                1     3.7     3.7     6.3533  0.011722 *  
## NYJ                1     0.6     0.6     1.1157  0.290857    
## OAK                1     1.0     1.0     1.7412  0.186993    
## PHI                1     3.8     3.8     6.6112  0.010139 *  
## PIT                1     5.0     5.0     8.7286  0.003135 ** 
## SD                 1     1.0     1.0     1.7287  0.188586    
## STL                1     3.0     3.0     5.1518  0.023230 *  
## TB                 1     0.5     0.5     0.7916  0.373618    
## TEN                1     3.7     3.7     6.4768  0.010935 *  
## WAS                1     0.6     0.6     1.0442  0.306864    
## avg_rectd_plyr     1 10771.0 10771.0 18744.1659 < 2.2e-16 ***
## avg_rbry_plyr      1    74.1    74.1   128.9315 < 2.2e-16 ***
## avg_rbry_pos       1    58.0    58.0   101.0080 < 2.2e-16 ***
## avg_fuml_plyr      1   205.7   205.7   357.9520 < 2.2e-16 ***
## avg_qbtdp_plyr     1   146.7   146.7   255.2558 < 2.2e-16 ***
## Residuals      27451 15774.3     0.6                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

This one was an improvement over the previous models. It still has its problems, and may need some refinement or other variables to improve the predictions.

AIC:

aic_trg <- step(lm(trgregform, data = trainTransformedtrg), direction = "backward")
summary(aic_trg)
## 
## Call:
## lm(formula = trg ~ height + weight + cold_weather + home_team_1 + 
##     forty1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + HOU + IND + JAC + KC + MIA + MINN + NE + 
##     NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + STL + TB + 
##     TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1, data = trainTransformedtrg)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.7706 -0.4598 -0.1104  0.3198  5.3223 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -1.784e-15  4.567e-03   0.000 1.000000    
## height         -1.982e-02  8.858e-03  -2.238 0.025261 *  
## weight         -6.489e-02  8.284e-03  -7.834 4.90e-15 ***
## cold_weather   -7.474e-03  4.747e-03  -1.575 0.115372    
## home_team_1    -1.684e-02  4.968e-03  -3.390 0.000699 ***
## forty1         -4.188e-02  6.732e-03  -6.221 5.00e-10 ***
## ARI             3.932e-02  5.561e-03   7.070 1.59e-12 ***
## ATL             3.113e-02  5.567e-03   5.592 2.27e-08 ***
## BAL             4.284e-02  5.529e-03   7.747 9.70e-15 ***
## BUF             2.785e-02  5.507e-03   5.057 4.29e-07 ***
## CAR             2.571e-02  5.460e-03   4.710 2.49e-06 ***
## CHI             3.190e-02  5.421e-03   5.885 4.03e-09 ***
## CIN             3.262e-02  5.504e-03   5.926 3.14e-09 ***
## CLE             5.613e-02  5.479e-03  10.244  < 2e-16 ***
## DAL             1.053e-02  5.544e-03   1.899 0.057583 .  
## DEN             1.590e-02  5.498e-03   2.892 0.003835 ** 
## DET             3.944e-02  5.502e-03   7.169 7.77e-13 ***
## HOU             4.346e-02  5.587e-03   7.780 7.53e-15 ***
## IND             3.871e-02  5.536e-03   6.992 2.76e-12 ***
## JAC             4.245e-02  5.418e-03   7.834 4.90e-15 ***
## KC              3.271e-02  5.494e-03   5.953 2.66e-09 ***
## MIA             3.334e-02  5.430e-03   6.139 8.41e-10 ***
## MINN            3.835e-02  5.493e-03   6.982 2.97e-12 ***
## NE              1.705e-02  5.634e-03   3.026 0.002481 ** 
## NOR             1.488e-02  5.625e-03   2.646 0.008159 ** 
## NYG             3.252e-02  5.528e-03   5.882 4.09e-09 ***
## NYJ             3.114e-02  5.527e-03   5.633 1.79e-08 ***
## OAK             3.606e-02  5.548e-03   6.500 8.15e-11 ***
## PHI             3.360e-02  5.411e-03   6.210 5.38e-10 ***
## PIT             3.206e-02  5.490e-03   5.839 5.30e-09 ***
## SD              2.426e-02  5.438e-03   4.461 8.19e-06 ***
## SEA            -8.800e-03  5.588e-03  -1.575 0.115295    
## STL             3.770e-02  5.526e-03   6.822 9.15e-12 ***
## TB              2.658e-02  5.448e-03   4.880 1.07e-06 ***
## TEN             2.875e-02  5.474e-03   5.253 1.51e-07 ***
## WAS             2.880e-02  5.488e-03   5.248 1.55e-07 ***
## avg_rectd_plyr  5.742e-01  5.809e-03  98.839  < 2e-16 ***
## avg_rbry_plyr   1.036e-01  6.969e-03  14.861  < 2e-16 ***
## avg_rbry_pos   -1.075e-01  8.128e-03 -13.232  < 2e-16 ***
## avg_fuml_plyr  -2.168e-02  6.744e-03  -3.215 0.001307 ** 
## avg_qbtdp_plyr -8.711e-02  7.321e-03 -11.898  < 2e-16 ***
## grass_1        -7.753e-03  5.238e-03  -1.480 0.138822    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7572 on 27442 degrees of freedom
## Multiple R-squared:  0.4276, Adjusted R-squared:  0.4267 
## F-statistic:   500 on 41 and 27442 DF,  p-value: < 2.2e-16

RandomForest:

forest_trg <- randomForest(trgregform, data = trainTransformedtrg, 
                           importance = TRUE, ntree = 500)
plot(forest_trg)

varImpPlot(forest_trg)

Receiving TD’s

PreProcess:

set.seed(123)
splittdrec <- sample.split(nfl_data$tdrec, SplitRatio = 0.7)
Traintdrec <- subset(nfl_data, split == TRUE)
Testtdrec <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintdrec, method = c("center", "scale"))
trainTransformedtdrec <- predict(preProcValues, Traintdrec)
testTransformedtdrec <- predict(preProcValues, Testtdrec)

ggpairs:

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("tdrec",colnames(filtered_nfl_data_fields[46:51]))])

tdrecregform <- formula(paste("tdrec ~ ", 
                            paste(colnames(filtered_nfl_data_fields), collapse="+")))


linRegRecTD <- lm(tdrecregform, data = trainTransformedtdrec)

summary(linRegRecTD)


linRegRecTD2 <- update(linRegRecTD, ~. -height-weight-cold_weather-hot_weather-home_team_1
                       -forty1-is_WR-is_TE-age-vertical1-ARI-BAL-BUF-CAR-CIN-CLE-DAL-DEN-DET-GB
                       -HOU-IND-JAC-KC-MIA-MINN-NE-NYG-NYJ-OAK-PHI-PIT-SEA-STL-TB-TEN-WAS
                       -avg_trg_team -avg_tdr_team-avg_rbra_team-avg_rbry_plyr
                       -avg_rbry_pos-avg_fuml_plyr-avg_fuml_team-avg_qbints_plyr_avg_qbtdp_team 
                       -avg_qbints_team - grass_1-bad_weather_1)

summary(linRegRecTD2)

linRegRecTD3 <- update(linRegRecTD2, ~. -ATL-CHI-NOR-SD-avg_qbints_plyr-avg_qbints_team)
summary(linRegRecTD3)
## 
## Call:
## lm(formula = tdrec ~ avg_rectd_plyr + avg_qbtdp_plyr + avg_qbtdp_team, 
##     data = trainTransformedtdrec)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9629 -0.4373 -0.1342  0.0040  9.0780 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -5.147e-16  5.562e-03   0.000  1.00000    
## avg_rectd_plyr  3.839e-01  5.941e-03  64.611  < 2e-16 ***
## avg_qbtdp_plyr -1.732e-03  5.876e-03  -0.295  0.76822    
## avg_qbtdp_team  1.505e-02  5.686e-03   2.647  0.00811 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9221 on 27480 degrees of freedom
## Multiple R-squared:  0.1499, Adjusted R-squared:  0.1498 
## F-statistic:  1615 on 3 and 27480 DF,  p-value: < 2.2e-16

The R2 is worsened in the second model, and the third. (the R2 in general is fairly low)

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

RectdPredicted <- predict(linRegRecTD3, newdata = testTransformedtdrec)

SSErectd <- sum((RectdPredicted - testTransformedtdrec$tdrec)^2)
SSTrectd <- sum((mean(c(testTransformedtdrec$tdrec,trainTransformedtdrec$tdrec))-testTransformedtdrec$tdrec)^2)
r2_rectd <- 1 - SSErectd/SSTrectd 
r2_rectd
## [1] 0.1501794
rmse_rectd <- sqrt(SSEtrg/nrow(testTransformedtdrec))
rmse_rectd
## [1] 0.7421937

Regression plots below

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRecTD3, which = c(1:3,5))

I would say that it appears that these charts do not like the prediction. Touchdowns are infrequent and random/unpredictable. If a receiver has an amazing season and gets 100 receptions, if they had 10 Tds it would be an All-pro year for them.

Additional summary statistics

confint(linRegRecTD3)
##                       2.5 %     97.5 %
## (Intercept)    -0.010901714 0.01090171
## avg_rectd_plyr  0.372215276 0.39550490
## avg_qbtdp_plyr -0.013249830 0.00978614
## avg_qbtdp_team  0.003908858 0.02619924
coef(summary(linRegRecTD3))
##                     Estimate  Std. Error       t value    Pr(>|t|)
## (Intercept)    -5.146925e-16 0.005561956 -9.253804e-14 1.000000000
## avg_rectd_plyr  3.838601e-01 0.005941078  6.461119e+01 0.000000000
## avg_qbtdp_plyr -1.731845e-03 0.005876372 -2.947133e-01 0.768215113
## avg_qbtdp_team  1.505405e-02 0.005686176  2.647482e+00 0.008113993
anova(linRegRecTD3)
## Analysis of Variance Table
## 
## Response: tdrec
##                   Df  Sum Sq Mean Sq   F value    Pr(>F)    
## avg_rectd_plyr     1  4112.8  4112.8 4837.2842 < 2.2e-16 ***
## avg_qbtdp_plyr     1     0.0     0.0    0.0023  0.961434    
## avg_qbtdp_team     1     6.0     6.0    7.0092  0.008114 ** 
## Residuals      27480 23364.2     0.9                        
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_tdrec <- step(lm(tdrecregform, data = trainTransformedtdrec), direction = "backward")
summary(aic_tdrec)
## 
## Call:
## lm(formula = tdrec ~ home_team_1 + NOR + avg_rectd_plyr + bad_weather_1, 
##     data = trainTransformedtdrec)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.9922 -0.4368 -0.1319  0.0116  9.0705 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -5.544e-16  5.562e-03   0.000   1.0000    
## home_team_1     9.119e-03  5.583e-03   1.633   0.1024    
## NOR             1.112e-02  5.584e-03   1.991   0.0465 *  
## avg_rectd_plyr  3.863e-01  5.572e-03  69.337   <2e-16 ***
## bad_weather_1   1.070e-02  5.570e-03   1.920   0.0548 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.922 on 27479 degrees of freedom
## Multiple R-squared:   0.15,  Adjusted R-squared:  0.1498 
## F-statistic:  1212 on 4 and 27479 DF,  p-value: < 2.2e-16

RandomForest:

forest_tdrec <- randomForest(tdrecregform, data = trainTransformedtdrec, 
                           importance = TRUE, ntree = 500)
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
plot(forest_tdrec)

varImpPlot(forest_tdrec)

##Passing

Passing Yards

PreProcess:

set.seed(123)
splitpy <- sample.split(nfl_data$py, SplitRatio = 0.7)
Trainpy <- subset(nfl_data, split == TRUE)
Testpy <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpy, method = c("center", "scale"))
trainTransformedpy <- predict(preProcValues, Trainpy)
testTransformedpy <- predict(preProcValues, Testpy)

ggpairs:

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("py",colnames(filtered_nfl_data_fields[46:51]))])

Regression:

pyregform <- formula(paste("py ~ ", 
                              paste(colnames(filtered_nfl_data_fields), collapse="+")))


linRegQBpyds <- lm(pyregform, data = trainTransformedpy)

summary(linRegQBpyds)

linRegQBpyds2 <- update(linRegQBpyds, ~.-hot_weather-home_team_1-vertical1-ATL-BAL-DAL-DEN-DET-KC
                        -NOR-PHI-PIT-SEA-SD-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team-avg_rbry_plyr
                        -avg_fuml_team-avg_qbints_team-avg_qbtdp_team-grass_1)
summary(linRegQBpyds2)
## 
## Call:
## lm(formula = py ~ height + weight + cold_weather + forty1 + ARI + 
##     BUF + CAR + CHI + CIN + CLE + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NYG + NYJ + OAK + STL + TB + TEN + avg_rectd_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, 
##     data = trainTransformedpy)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.0413 -0.0521 -0.0106  0.0261  4.9606 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     1.289e-15  2.344e-03   0.000 1.000000    
## height          4.148e-02  4.525e-03   9.166  < 2e-16 ***
## weight         -2.680e-02  4.230e-03  -6.336 2.40e-10 ***
## cold_weather   -5.096e-03  2.412e-03  -2.113 0.034614 *  
## forty1          2.488e-02  3.391e-03   7.338 2.23e-13 ***
## ARI             3.054e-03  2.400e-03   1.273 0.203163    
## BUF             3.269e-03  2.400e-03   1.362 0.173119    
## CAR             1.795e-03  2.397e-03   0.749 0.453945    
## CHI            -2.204e-03  2.401e-03  -0.918 0.358631    
## CIN            -4.019e-03  2.399e-03  -1.675 0.093918 .  
## CLE             7.153e-03  2.410e-03   2.968 0.003001 ** 
## GB             -1.565e-02  2.416e-03  -6.477 9.52e-11 ***
## HOU             8.488e-03  2.408e-03   3.525 0.000424 ***
## IND            -3.844e-03  2.395e-03  -1.605 0.108539    
## JAC            -4.243e-04  2.395e-03  -0.177 0.859370    
## MIA             1.151e-03  2.393e-03   0.481 0.630424    
## MINN            4.273e-03  2.405e-03   1.777 0.075588 .  
## NE             -1.233e-02  2.445e-03  -5.044 4.58e-07 ***
## NYG            -6.020e-03  2.400e-03  -2.508 0.012151 *  
## NYJ            -1.940e-03  2.399e-03  -0.809 0.418794    
## OAK            -9.088e-04  2.413e-03  -0.377 0.706470    
## STL             1.559e-03  2.404e-03   0.648 0.516748    
## TB             -2.803e-03  2.398e-03  -1.169 0.242444    
## TEN            -7.200e-04  2.401e-03  -0.300 0.764233    
## avg_rectd_plyr -1.931e-02  2.963e-03  -6.518 7.25e-11 ***
## avg_rbry_pos   -4.247e-03  3.477e-03  -1.221 0.221986    
## avg_fuml_plyr   7.115e-02  3.245e-03  21.926  < 2e-16 ***
## avg_qbtdp_plyr  8.484e-01  3.706e-03 228.891  < 2e-16 ***
## bad_weather_1  -5.277e-03  2.379e-03  -2.218 0.026589 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3885 on 27455 degrees of freedom
## Multiple R-squared:  0.8492, Adjusted R-squared:  0.849 
## F-statistic:  5521 on 28 and 27455 DF,  p-value: < 2.2e-16

This prediction actually turned out to be pretty strong (R2 0.87) and we did it with only 5 variables! This makes sense to me. QB is a 1 player position, with a significant investment in the player. A QB will get time to mature and prove himself good or bad.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

PydsdPredicted <- predict(linRegQBpyds2, newdata = testTransformedpy)

SSEpyds <- sum((PydsdPredicted - testTransformedpy$py)^2)
SSTpyds <- sum((mean(c(testTransformedpy$py,trainTransformedpy$py))-testTransformedpy$py)^2)
r2_pyds <- 1 - SSEpyds/SSTpyds 
r2_pyds
## [1] 0.8451773
rmse_pyds <- sqrt(SSEpyds/nrow(testTransformedpy))
rmse_pyds
## [1] 0.4007825

Below are the regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpyds2, which = c(1:3,5))

The normal Q-Q shows are data has extreme values, and means the data is probably not normally distributed

Some more summary statistics:

confint(linRegQBpyds2)
##                        2.5 %        97.5 %
## (Intercept)    -0.0045936970  0.0045936970
## height          0.0326078543  0.0503464791
## weight         -0.0350933025 -0.0185105021
## cold_weather   -0.0098236426 -0.0003687761
## forty1          0.0182347552  0.0315260322
## ARI            -0.0016498965  0.0077587289
## BUF            -0.0014345387  0.0079730819
## CAR            -0.0029037966  0.0064945761
## CHI            -0.0069102798  0.0025020177
## CIN            -0.0087219695  0.0006835929
## CLE             0.0024291162  0.0118777163
## GB             -0.0203876978 -0.0109148362
## HOU             0.0037682390  0.0132071276
## IND            -0.0085392589  0.0008508465
## JAC            -0.0051186886  0.0042700044
## MIA            -0.0035383674  0.0058406447
## MINN           -0.0004402949  0.0089861675
## NE             -0.0171234530 -0.0075402464
## NYG            -0.0107246243 -0.0013150442
## NYJ            -0.0066413585  0.0027623132
## OAK            -0.0056389235  0.0038212445
## STL            -0.0031534987  0.0062711114
## TB             -0.0075025120  0.0018969260
## TEN            -0.0054253315  0.0039853018
## avg_rectd_plyr -0.0251213934 -0.0135056939
## avg_rbry_pos   -0.0110621988  0.0025688193
## avg_fuml_plyr   0.0647915244  0.0775128589
## avg_qbtdp_plyr  0.8410944287  0.8556238723
## bad_weather_1  -0.0099402225 -0.0006128489
coef(summary(linRegQBpyds2))
##                     Estimate  Std. Error       t value      Pr(>|t|)
## (Intercept)     1.288901e-15 0.002343663  5.499515e-13  1.000000e+00
## height          4.147717e-02 0.004525043  9.166137e+00  5.235466e-20
## weight         -2.680190e-02 0.004230197 -6.335851e+00  2.396931e-10
## cold_weather   -5.096209e-03 0.002411894 -2.112949e+00  3.461410e-02
## forty1          2.488039e-02 0.003390545  7.338170e+00  2.225360e-13
## ARI             3.054416e-03 0.002400098  1.272622e+00  2.031631e-01
## BUF             3.269272e-03 0.002399842  1.362286e+00  1.731187e-01
## CAR             1.795390e-03 0.002397482  7.488646e-01  4.539452e-01
## CHI            -2.204131e-03 0.002401035 -9.179922e-01  3.586310e-01
## CIN            -4.019188e-03 0.002399316 -1.675139e+00  9.391838e-02
## CLE             7.153416e-03 0.002410295  2.967859e+00  3.001405e-03
## GB             -1.565127e-02 0.002416484 -6.476875e+00  9.522448e-11
## HOU             8.487683e-03 0.002407818  3.525052e+00  4.240887e-04
## IND            -3.844206e-03 0.002395373 -1.604846e+00  1.085391e-01
## JAC            -4.243421e-04 0.002395013 -1.771774e-01  8.593704e-01
## MIA             1.151139e-03 0.002392544  4.811359e-01  6.304237e-01
## MINN            4.272936e-03 0.002404648  1.776949e+00  7.558773e-02
## NE             -1.233185e-02 0.002444633 -5.044459e+00  4.577027e-07
## NYG            -6.019834e-03 0.002400341 -2.507908e+00  1.215057e-02
## NYJ            -1.939523e-03 0.002398834 -8.085272e-01  4.187942e-01
## OAK            -9.088395e-04 0.002413246 -3.766046e-01  7.064704e-01
## STL             1.558806e-03 0.002404175  6.483746e-01  5.167481e-01
## TB             -2.802793e-03 0.002397754 -1.168924e+00  2.424443e-01
## TEN            -7.200148e-04 0.002400610 -2.999299e-01  7.642329e-01
## avg_rectd_plyr -1.931354e-02 0.002963112 -6.517992e+00  7.248974e-11
## avg_rbry_pos   -4.246690e-03 0.003477211 -1.221292e+00  2.219860e-01
## avg_fuml_plyr   7.115219e-02 0.003245155  2.192567e+01 1.193963e-105
## avg_qbtdp_plyr  8.483592e-01 0.003706395  2.288906e+02  0.000000e+00
## bad_weather_1  -5.276536e-03 0.002379371 -2.217618e+00  2.658904e-02
anova(linRegQBpyds2)
## Analysis of Variance Table
## 
## Response: py
##                   Df Sum Sq Mean Sq    F value    Pr(>F)    
## height             1 1859.7  1859.7 12318.8750 < 2.2e-16 ***
## weight             1  446.2   446.2  2955.3921 < 2.2e-16 ***
## cold_weather       1    0.7     0.7     4.3623 0.0367522 *  
## forty1             1 5442.0  5442.0 36048.5596 < 2.2e-16 ***
## ARI                1    0.4     0.4     2.8024 0.0941360 .  
## BUF                1    0.5     0.5     3.6101 0.0574397 .  
## CAR                1   10.9    10.9    71.9797 < 2.2e-16 ***
## CHI                1    0.1     0.1     0.6070 0.4359401    
## CIN                1    4.2     4.2    27.8127 1.347e-07 ***
## CLE                1    1.9     1.9    12.7879 0.0003495 ***
## GB                 1    0.0     0.0     0.0314 0.8593892    
## HOU                1   15.1    15.1   100.2842 < 2.2e-16 ***
## IND                1   11.3    11.3    74.6888 < 2.2e-16 ***
## JAC                1    0.0     0.0     0.0713 0.7895004    
## MIA                1    0.6     0.6     3.8769 0.0489650 *  
## MINN               1    1.9     1.9    12.5342 0.0004002 ***
## NE                 1   34.2    34.2   226.3528 < 2.2e-16 ***
## NYG                1    7.3     7.3    48.0341 4.281e-12 ***
## NYJ                1    0.8     0.8     5.1984 0.0226151 *  
## OAK                1    0.1     0.1     0.9377 0.3328731    
## STL                1   26.8    26.8   177.4989 < 2.2e-16 ***
## TB                 1    3.2     3.2    20.8947 4.874e-06 ***
## TEN                1    5.7     5.7    38.0459 7.006e-10 ***
## avg_rectd_plyr     1 1872.3  1872.3 12402.0890 < 2.2e-16 ***
## avg_rbry_pos       1  311.0   311.0  2060.3374 < 2.2e-16 ***
## avg_fuml_plyr      1 5371.6  5371.6 35582.4880 < 2.2e-16 ***
## avg_qbtdp_plyr     1 7909.1  7909.1 52391.3106 < 2.2e-16 ***
## bad_weather_1      1    0.7     0.7     4.9178 0.0265890 *  
## Residuals      27455 4144.7     0.2                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_py <- step(lm(pyregform, data = trainTransformedpy), direction = "backward")
summary(aic_py)
## 
## Call:
## lm(formula = py ~ height + weight + cold_weather + forty1 + vertical1 + 
##     CIN + CLE + DAL + GB + HOU + IND + KC + MINN + NE + NOR + 
##     NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, 
##     data = trainTransformedpy)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.0344 -0.0516 -0.0127  0.0292  4.9231 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     1.213e-15  2.338e-03   0.000 1.000000    
## height          4.383e-02  4.494e-03   9.751  < 2e-16 ***
## weight         -2.563e-02  4.233e-03  -6.055 1.42e-09 ***
## cold_weather   -6.724e-03  2.405e-03  -2.796 0.005171 ** 
## forty1          1.430e-02  4.006e-03   3.571 0.000356 ***
## vertical1      -1.174e-02  3.066e-03  -3.830 0.000128 ***
## CIN            -4.212e-03  2.374e-03  -1.774 0.076064 .  
## CLE             7.060e-03  2.384e-03   2.962 0.003062 ** 
## DAL            -9.284e-03  2.375e-03  -3.910 9.25e-05 ***
## GB             -1.616e-02  2.401e-03  -6.731 1.72e-11 ***
## HOU             8.505e-03  2.381e-03   3.573 0.000354 ***
## IND            -4.031e-03  2.374e-03  -1.698 0.089493 .  
## KC              4.665e-03  2.374e-03   1.965 0.049377 *  
## MINN            4.749e-03  2.377e-03   1.998 0.045780 *  
## NE             -1.250e-02  2.433e-03  -5.138 2.80e-07 ***
## NOR            -9.370e-03  2.392e-03  -3.918 8.97e-05 ***
## NYG            -6.801e-03  2.377e-03  -2.861 0.004230 ** 
## PHI             8.350e-03  2.372e-03   3.520 0.000432 ***
## SD             -9.069e-03  2.376e-03  -3.817 0.000135 ***
## TB             -3.595e-03  2.372e-03  -1.516 0.129597    
## WAS             7.999e-03  2.380e-03   3.361 0.000779 ***
## avg_rectd_plyr -1.617e-02  2.960e-03  -5.464 4.70e-08 ***
## avg_rbry_plyr  -2.425e-02  3.561e-03  -6.808 1.01e-11 ***
## avg_rbry_pos    1.291e-02  4.144e-03   3.115 0.001843 ** 
## avg_fuml_plyr   7.679e-02  3.436e-03  22.350  < 2e-16 ***
## avg_qbtdp_plyr  8.465e-01  3.728e-03 227.053  < 2e-16 ***
## bad_weather_1  -5.346e-03  2.371e-03  -2.255 0.024141 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3876 on 27457 degrees of freedom
## Multiple R-squared:  0.8499, Adjusted R-squared:  0.8497 
## F-statistic:  5979 on 26 and 27457 DF,  p-value: < 2.2e-16

RandomForest:

forest_py <- randomForest(pyregform, data = trainTransformedpy, 
                             importance = TRUE, ntree = 500)
plot(forest_py)

varImpPlot(forest_py)

Conclusion, this predicts well, but it seems like this could be driven by some chance. QB statistics remind me of baseball statistics. One batter vs One pitcher. A QB is really like a pitcher or a batter. The opponent is more complex, however one side of the equation is “controlled”.

Pass completions

PreProcess:

set.seed(123)
splitpc <- sample.split(nfl_data$pc, SplitRatio = 0.7)
Trainpc <- subset(nfl_data, split == TRUE)
Testpc <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpc, method = c("center", "scale"))
trainTransformedpc <- predict(preProcValues, Trainpc)
testTransformedpc <- predict(preProcValues, Testpc)

ggpairs:

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("pc",colnames(filtered_nfl_data_fields[46:51]))])

pcregform <- formula(paste("pc ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))


linRegQBpc <- lm(pcregform, data = trainTransformedpc)
summary(linRegQBpc)

linRegQBpc2 <- update(linRegQBpc, ~.-hot_weather-home_team_1-vertical1-ATL-BAL-CIN-DAL-DEN-DET-KC
                      -MIA-PHI-PIT-SEA-STL-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team
                      -avg_rbry_plyr-avg_fuml_team-avg_qbints_team-avg_qbtdp_team-grass_1 )
summary(linRegQBpc2)
## 
## Call:
## lm(formula = pc ~ height + weight + cold_weather + forty1 + ARI + 
##     BUF + CAR + CHI + CLE + GB + HOU + IND + JAC + MINN + NE + 
##     NOR + NYG + NYJ + OAK + SD + TB + TEN + avg_rectd_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, 
##     data = trainTransformedpc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2398 -0.0575 -0.0124  0.0294  4.6660 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     7.666e-16  2.298e-03   0.000 1.000000    
## height          4.709e-02  4.435e-03  10.619  < 2e-16 ***
## weight         -3.546e-02  4.143e-03  -8.558  < 2e-16 ***
## cold_weather   -5.546e-03  2.366e-03  -2.344 0.019063 *  
## forty1          3.370e-02  3.324e-03  10.139  < 2e-16 ***
## ARI             1.021e-03  2.347e-03   0.435 0.663685    
## BUF             3.111e-03  2.346e-03   1.326 0.184868    
## CAR            -3.434e-03  2.345e-03  -1.464 0.143092    
## CHI            -4.221e-03  2.347e-03  -1.798 0.072184 .  
## CLE             7.582e-03  2.354e-03   3.221 0.001279 ** 
## GB             -1.833e-02  2.367e-03  -7.744 9.98e-15 ***
## HOU             7.470e-03  2.354e-03   3.173 0.001512 ** 
## IND            -5.380e-03  2.344e-03  -2.295 0.021764 *  
## JAC             6.082e-04  2.343e-03   0.260 0.795205    
## MINN            6.319e-03  2.350e-03   2.689 0.007163 ** 
## NE             -1.631e-02  2.395e-03  -6.809 1.00e-11 ***
## NOR            -7.575e-03  2.363e-03  -3.205 0.001350 ** 
## NYG            -8.832e-03  2.348e-03  -3.761 0.000169 ***
## NYJ            -4.421e-03  2.345e-03  -1.885 0.059386 .  
## OAK            -1.986e-03  2.360e-03  -0.841 0.400133    
## SD             -1.167e-02  2.347e-03  -4.973 6.63e-07 ***
## TB             -6.022e-03  2.346e-03  -2.568 0.010247 *  
## TEN            -3.866e-03  2.346e-03  -1.648 0.099462 .  
## avg_rectd_plyr -1.860e-02  2.908e-03  -6.396 1.62e-10 ***
## avg_rbry_pos   -5.369e-04  3.417e-03  -0.157 0.875164    
## avg_fuml_plyr   7.127e-02  3.185e-03  22.374  < 2e-16 ***
## avg_qbtdp_plyr  8.468e-01  3.635e-03 232.924  < 2e-16 ***
## bad_weather_1  -5.320e-03  2.332e-03  -2.281 0.022535 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3809 on 27456 degrees of freedom
## Multiple R-squared:  0.855,  Adjusted R-squared:  0.8549 
## F-statistic:  5998 on 27 and 27456 DF,  p-value: < 2.2e-16

Again, R2 is very strong, model stays strong when model is shrunk to 8 variables. Not surprising (to me) bad weather and cold weather hurt completions. It is harder to throw a ball in bad weather and catch a ball in bad weather.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

PcPredicted <- predict(linRegQBpc2, newdata = testTransformedpc)

SSEpc <- sum((PcPredicted - testTransformedpc$pc)^2)
SSTpc <- sum((mean(c(testTransformedpc$pc,trainTransformedpc$pc))-testTransformedpc$pc)^2)
r2_pc <- 1 - SSEpc/SSTpc 
r2_pc
## [1] 0.8491587
rmse_pc <- sqrt(SSEpc/nrow(testTransformedpc))
rmse_pc
## [1] 0.3924396

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpc2, which = c(1:3,5))

Very similar problems/characteristics as we saw in yards

Summary statistics:

confint(linRegQBpc2)
##                       2.5 %        97.5 %
## (Intercept)    -0.004503758  0.0045037581
## height          0.038398997  0.0557838535
## weight         -0.043577952 -0.0273367386
## cold_weather   -0.010182362 -0.0009092848
## forty1          0.027185053  0.0402147931
## ARI            -0.003579930  0.0056211955
## BUF            -0.001487868  0.0077103207
## CAR            -0.008031261  0.0011623957
## CHI            -0.008821661  0.0003803371
## CLE             0.002968402  0.0121965425
## GB             -0.022967535 -0.0136892607
## HOU             0.002855127  0.0120843132
## IND            -0.009974835 -0.0007843123
## JAC            -0.003984834  0.0052013096
## MINN            0.001713726  0.0109249709
## NE             -0.020998638 -0.0116116817
## NOR            -0.012207381 -0.0029431848
## NYG            -0.013434167 -0.0042295072
## NYJ            -0.009016369  0.0001750304
## OAK            -0.006612556  0.0026404775
## SD             -0.016274935 -0.0070726373
## TB             -0.010619902 -0.0014249439
## TEN            -0.008464463  0.0007332893
## avg_rectd_plyr -0.024300118 -0.0129002712
## avg_rbry_pos   -0.007235219  0.0061614368
## avg_fuml_plyr   0.065021908  0.0775083344
## avg_qbtdp_plyr  0.839643262  0.8538943403
## bad_weather_1  -0.009890038 -0.0007491984
coef(summary(linRegQBpc2))
##                     Estimate  Std. Error       t value      Pr(>|t|)
## (Intercept)     7.666331e-16 0.002297777  3.336412e-13  1.000000e+00
## height          4.709143e-02 0.004434798  1.061862e+01  2.745893e-26
## weight         -3.545735e-02 0.004143060 -8.558250e+00  1.204789e-17
## cold_weather   -5.545823e-03 0.002365520 -2.344441e+00  1.906269e-02
## forty1          3.369992e-02 0.003323828  1.013889e+01  4.094619e-24
## ARI             1.020633e-03 0.002347165  4.348364e-01  6.636846e-01
## BUF             3.111226e-03 0.002346417  1.325948e+00  1.848680e-01
## CAR            -3.434433e-03 0.002345260 -1.464414e+00  1.430922e-01
## CHI            -4.220662e-03 0.002347388 -1.798025e+00  7.218407e-02
## CLE             7.582472e-03 0.002354057  3.221023e+00  1.278825e-03
## GB             -1.832840e-02 0.002366846 -7.743807e+00  9.979816e-15
## HOU             7.469720e-03 0.002354324  3.172767e+00  1.511602e-03
## IND            -5.379574e-03 0.002344461 -2.294589e+00  2.176421e-02
## JAC             6.082379e-04 0.002343344  2.595598e-01  7.952053e-01
## MINN            6.319349e-03 0.002349747  2.689374e+00  7.162938e-03
## NE             -1.630516e-02 0.002394570 -6.809222e+00  1.001490e-11
## NOR            -7.575283e-03 0.002363254 -3.205445e+00  1.350080e-03
## NYG            -8.831837e-03 0.002348067 -3.761322e+00  1.693684e-04
## NYJ            -4.420669e-03 0.002344684 -1.885400e+00  5.938634e-02
## OAK            -1.986039e-03 0.002360407 -8.413970e-01  4.001329e-01
## SD             -1.167379e-02 0.002347465 -4.972934e+00  6.634458e-07
## TB             -6.022423e-03 0.002345592 -2.567549e+00  1.024728e-02
## TEN            -3.865587e-03 0.002346305 -1.647521e+00  9.946244e-02
## avg_rectd_plyr -1.860019e-02 0.002908049 -6.396107e+00  1.619528e-10
## avg_rbry_pos   -5.368910e-04 0.003417426 -1.571039e-01  8.751641e-01
## avg_fuml_plyr   7.126512e-02 0.003185231  2.237361e+01 6.839892e-110
## avg_qbtdp_plyr  8.467688e-01 0.003635386  2.329241e+02  0.000000e+00
## bad_weather_1  -5.319618e-03 0.002331787 -2.281348e+00  2.253546e-02
anova(linRegQBpc2)
## Analysis of Variance Table
## 
## Response: pc
##                   Df Sum Sq Mean Sq    F value    Pr(>F)    
## height             1 1882.8  1882.8 12974.7620 < 2.2e-16 ***
## weight             1  461.2   461.2  3178.5347 < 2.2e-16 ***
## cold_weather       1    0.5     0.5     3.7567  0.052607 .  
## forty1             1 5589.0  5589.0 38515.7304 < 2.2e-16 ***
## ARI                1    0.3     0.3     2.1068  0.146660    
## BUF                1    0.9     0.9     6.3007  0.012075 *  
## CAR                1    6.9     6.9    47.7623 4.917e-12 ***
## CHI                1    0.2     0.2     1.2414  0.265216    
## CLE                1    1.1     1.1     7.2861  0.006953 ** 
## GB                 1    0.0     0.0     0.0309  0.860535    
## HOU                1   13.9    13.9    95.9656 < 2.2e-16 ***
## IND                1   11.5    11.5    79.0848 < 2.2e-16 ***
## JAC                1    0.1     0.1     0.9519  0.329253    
## MINN               1    0.4     0.4     2.9212  0.087437 .  
## NE                 1   36.9    36.9   254.3033 < 2.2e-16 ***
## NOR                1   16.0    16.0   110.5203 < 2.2e-16 ***
## NYG                1    6.4     6.4    43.9986 3.347e-11 ***
## NYJ                1    0.4     0.4     3.0309  0.081702 .  
## OAK                1    0.8     0.8     5.7241  0.016740 *  
## SD                 1   12.4    12.4    85.4687 < 2.2e-16 ***
## TB                 1    2.3     2.3    15.6288 7.727e-05 ***
## TEN                1    4.4     4.4    30.1061 4.127e-08 ***
## avg_rectd_plyr     1 1862.7  1862.7 12836.4447 < 2.2e-16 ***
## avg_rbry_pos       1  322.4   322.4  2221.7472 < 2.2e-16 ***
## avg_fuml_plyr      1 5391.9  5391.9 37157.5723 < 2.2e-16 ***
## avg_qbtdp_plyr     1 7872.6  7872.6 54252.8371 < 2.2e-16 ***
## bad_weather_1      1    0.8     0.8     5.2046  0.022535 *  
## Residuals      27456 3984.1     0.1                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_pc <- step(lm(pcregform, data = trainTransformedpc), direction = "backward")
## Start:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     avg_qbtdp_team + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-53141.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - SEA             1       0.0  3961.8 -53144
## - BAL             1       0.0  3961.8 -53144
## - home_team_1     1       0.0  3961.8 -53144
## - MIA             1       0.0  3961.8 -53144
## - ARI             1       0.0  3961.8 -53144
## - JAC             1       0.0  3961.9 -53144
## - BUF             1       0.1  3961.9 -53143
## - grass_1         1       0.1  3961.9 -53143
## - DET             1       0.1  3961.9 -53143
## - PIT             1       0.1  3961.9 -53143
## - hot_weather     1       0.1  3961.9 -53143
## - STL             1       0.1  3962.0 -53143
## - CAR             1       0.1  3962.0 -53143
## - CIN             1       0.1  3962.0 -53143
## - OAK             1       0.2  3962.0 -53143
## - NYJ             1       0.2  3962.1 -53142
## - ATL             1       0.2  3962.1 -53142
## - TEN             1       0.2  3962.1 -53142
## <none>                         3961.8 -53142
## - CHI             1       0.3  3962.2 -53141
## - WAS             1       0.4  3962.3 -53141
## - DEN             1       0.5  3962.3 -53141
## - IND             1       0.5  3962.3 -53140
## - PHI             1       0.5  3962.4 -53140
## - KC              1       0.5  3962.4 -53140
## - TB              1       0.7  3962.5 -53139
## - MINN            1       0.7  3962.5 -53139
## - bad_weather_1   1       0.7  3962.5 -53139
## - HOU             1       0.8  3962.6 -53138
## - CLE             1       0.8  3962.6 -53138
## - cold_weather    1       0.9  3962.7 -53137
## - NOR             1       1.0  3962.9 -53136
## - NYG             1       1.4  3963.2 -53134
## - DAL             1       1.4  3963.3 -53134
## - SD              1       2.2  3964.1 -53128
## - avg_rbry_pos    1       3.1  3965.0 -53122
## - forty1          1       3.4  3965.2 -53120
## - NE              1       3.7  3965.5 -53118
## - vertical1       1       3.9  3965.7 -53117
## - avg_rectd_plyr  1       4.1  3966.0 -53115
## - GB              1       4.8  3966.7 -53110
## - weight          1       9.1  3970.9 -53081
## - avg_rbry_plyr   1      10.7  3972.6 -53069
## - height          1      17.4  3979.2 -53024
## - avg_fuml_plyr   1      79.6  4041.4 -52597
## - avg_qbtdp_plyr  1    7597.8 11559.6 -23714
## 
## Step:  AIC=-53143.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - BAL             1       0.0  3961.8 -53146
## - home_team_1     1       0.0  3961.8 -53146
## - ARI             1       0.0  3961.8 -53146
## - MIA             1       0.0  3961.8 -53146
## - JAC             1       0.0  3961.9 -53145
## - grass_1         1       0.1  3961.9 -53145
## - BUF             1       0.1  3961.9 -53145
## - hot_weather     1       0.1  3961.9 -53145
## - DET             1       0.1  3962.0 -53145
## - PIT             1       0.1  3962.0 -53145
## - STL             1       0.2  3962.0 -53145
## - CAR             1       0.2  3962.0 -53144
## - CIN             1       0.2  3962.0 -53144
## - OAK             1       0.2  3962.0 -53144
## <none>                         3961.8 -53144
## - NYJ             1       0.3  3962.1 -53144
## - ATL             1       0.3  3962.1 -53144
## - TEN             1       0.3  3962.2 -53143
## - CHI             1       0.4  3962.3 -53143
## - WAS             1       0.6  3962.4 -53142
## - DEN             1       0.6  3962.4 -53142
## - IND             1       0.6  3962.5 -53141
## - PHI             1       0.7  3962.5 -53141
## - KC              1       0.7  3962.5 -53141
## - bad_weather_1   1       0.7  3962.5 -53141
## - TB              1       0.9  3962.7 -53140
## - MINN            1       0.9  3962.7 -53139
## - cold_weather    1       0.9  3962.7 -53139
## - HOU             1       1.0  3962.9 -53138
## - CLE             1       1.1  3962.9 -53138
## - NOR             1       1.4  3963.3 -53136
## - NYG             1       1.9  3963.7 -53133
## - DAL             1       1.9  3963.7 -53133
## - SD              1       2.9  3964.8 -53125
## - avg_rbry_pos    1       3.1  3965.0 -53124
## - forty1          1       3.4  3965.2 -53122
## - vertical1       1       3.9  3965.7 -53119
## - avg_rectd_plyr  1       4.1  3966.0 -53117
## - NE              1       5.0  3966.8 -53111
## - GB              1       6.5  3968.3 -53101
## - weight          1       9.1  3970.9 -53083
## - avg_rbry_plyr   1      10.7  3972.6 -53071
## - height          1      17.4  3979.2 -53026
## - avg_fuml_plyr   1      79.6  4041.5 -52599
## - avg_qbtdp_plyr  1    7604.3 11566.1 -23700
## 
## Step:  AIC=-53145.63
## pc ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BUF + CAR + CHI + CIN + 
##     CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + MIA + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL + 
##     TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - home_team_1     1       0.0  3961.8 -53148
## - MIA             1       0.0  3961.8 -53148
## - ARI             1       0.0  3961.8 -53148
## - JAC             1       0.0  3961.9 -53147
## - grass_1         1       0.1  3961.9 -53147
## - BUF             1       0.1  3961.9 -53147
## - hot_weather     1       0.1  3961.9 -53147
## - DET             1       0.2  3962.0 -53147
## - PIT             1       0.2  3962.0 -53147
## - STL             1       0.2  3962.0 -53146
## - CAR             1       0.2  3962.1 -53146
## - CIN             1       0.2  3962.1 -53146
## - OAK             1       0.2  3962.1 -53146
## <none>                         3961.8 -53146
## - NYJ             1       0.3  3962.2 -53145
## - ATL             1       0.3  3962.2 -53145
## - TEN             1       0.4  3962.2 -53145
## - CHI             1       0.5  3962.3 -53144
## - WAS             1       0.7  3962.5 -53143
## - DEN             1       0.7  3962.5 -53143
## - bad_weather_1   1       0.7  3962.5 -53143
## - IND             1       0.7  3962.5 -53143
## - PHI             1       0.7  3962.6 -53142
## - KC              1       0.8  3962.6 -53142
## - cold_weather    1       0.9  3962.7 -53141
## - TB              1       1.0  3962.8 -53141
## - MINN            1       1.0  3962.8 -53141
## - HOU             1       1.2  3963.0 -53140
## - CLE             1       1.2  3963.0 -53139
## - NOR             1       1.6  3963.4 -53136
## - NYG             1       2.1  3963.9 -53133
## - DAL             1       2.1  3964.0 -53133
## - avg_rbry_pos    1       3.1  3965.0 -53126
## - SD              1       3.3  3965.1 -53125
## - forty1          1       3.4  3965.2 -53124
## - vertical1       1       3.9  3965.7 -53121
## - avg_rectd_plyr  1       4.1  3966.0 -53119
## - NE              1       5.6  3967.4 -53109
## - GB              1       7.3  3969.2 -53097
## - weight          1       9.1  3970.9 -53085
## - avg_rbry_plyr   1      10.7  3972.6 -53073
## - height          1      17.4  3979.2 -53027
## - avg_fuml_plyr   1      79.6  4041.5 -52601
## - avg_qbtdp_plyr  1    7605.8 11567.7 -23698
## 
## Step:  AIC=-53147.6
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ARI + ATL + BUF + CAR + CHI + CIN + CLE + DAL + 
##     DEN + DET + GB + HOU + IND + JAC + KC + MIA + MINN + NE + 
##     NOR + NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - ARI             1       0.0  3961.9 -53150
## - MIA             1       0.0  3961.9 -53150
## - JAC             1       0.0  3961.9 -53149
## - grass_1         1       0.1  3961.9 -53149
## - BUF             1       0.1  3961.9 -53149
## - hot_weather     1       0.1  3962.0 -53149
## - DET             1       0.1  3962.0 -53149
## - PIT             1       0.2  3962.0 -53148
## - STL             1       0.2  3962.0 -53148
## - CAR             1       0.2  3962.1 -53148
## - CIN             1       0.2  3962.1 -53148
## - OAK             1       0.2  3962.1 -53148
## <none>                         3961.8 -53148
## - ATL             1       0.3  3962.2 -53147
## - NYJ             1       0.3  3962.2 -53147
## - TEN             1       0.4  3962.2 -53147
## - CHI             1       0.5  3962.3 -53146
## - WAS             1       0.7  3962.5 -53145
## - DEN             1       0.7  3962.5 -53145
## - IND             1       0.7  3962.5 -53145
## - bad_weather_1   1       0.7  3962.5 -53145
## - PHI             1       0.7  3962.6 -53144
## - KC              1       0.8  3962.6 -53144
## - cold_weather    1       0.9  3962.8 -53143
## - TB              1       1.0  3962.8 -53143
## - MINN            1       1.0  3962.8 -53143
## - CLE             1       1.2  3963.0 -53141
## - HOU             1       1.2  3963.0 -53141
## - NOR             1       1.6  3963.4 -53138
## - NYG             1       2.1  3963.9 -53135
## - DAL             1       2.1  3964.0 -53135
## - avg_rbry_pos    1       3.1  3965.0 -53128
## - SD              1       3.3  3965.1 -53127
## - forty1          1       3.4  3965.2 -53126
## - vertical1       1       3.9  3965.7 -53123
## - avg_rectd_plyr  1       4.1  3966.0 -53121
## - NE              1       5.6  3967.5 -53111
## - GB              1       7.3  3969.2 -53099
## - weight          1       9.1  3970.9 -53087
## - avg_rbry_plyr   1      10.7  3972.6 -53075
## - height          1      17.4  3979.2 -53029
## - avg_fuml_plyr   1      79.6  4041.5 -52603
## - avg_qbtdp_plyr  1    7606.0 11567.8 -23700
## 
## Step:  AIC=-53149.56
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + HOU + IND + JAC + KC + MIA + MINN + NE + NOR + 
##     NYG + NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - MIA             1       0.0  3961.9 -53151
## - JAC             1       0.0  3961.9 -53151
## - grass_1         1       0.1  3961.9 -53151
## - BUF             1       0.1  3962.0 -53151
## - hot_weather     1       0.1  3962.0 -53151
## - DET             1       0.1  3962.0 -53151
## - PIT             1       0.2  3962.0 -53150
## - STL             1       0.2  3962.1 -53150
## - CAR             1       0.2  3962.1 -53150
## - CIN             1       0.2  3962.1 -53150
## - OAK             1       0.2  3962.1 -53150
## <none>                         3961.9 -53150
## - ATL             1       0.3  3962.2 -53149
## - NYJ             1       0.3  3962.2 -53149
## - TEN             1       0.4  3962.2 -53149
## - CHI             1       0.5  3962.3 -53148
## - DEN             1       0.7  3962.5 -53147
## - bad_weather_1   1       0.7  3962.6 -53147
## - IND             1       0.7  3962.6 -53147
## - WAS             1       0.7  3962.6 -53147
## - PHI             1       0.8  3962.7 -53146
## - KC              1       0.8  3962.7 -53146
## - cold_weather    1       0.9  3962.8 -53145
## - TB              1       1.0  3962.8 -53145
## - MINN            1       1.1  3962.9 -53144
## - CLE             1       1.3  3963.1 -53143
## - HOU             1       1.3  3963.2 -53142
## - NOR             1       1.7  3963.5 -53140
## - NYG             1       2.2  3964.0 -53136
## - DAL             1       2.2  3964.1 -53136
## - avg_rbry_pos    1       3.1  3965.0 -53130
## - SD              1       3.4  3965.2 -53128
## - forty1          1       3.4  3965.2 -53128
## - vertical1       1       3.9  3965.7 -53125
## - avg_rectd_plyr  1       4.1  3966.0 -53123
## - NE              1       5.8  3967.7 -53111
## - GB              1       7.7  3969.5 -53098
## - weight          1       9.1  3970.9 -53089
## - avg_rbry_plyr   1      10.7  3972.6 -53077
## - height          1      17.4  3979.2 -53031
## - avg_fuml_plyr   1      79.7  4041.5 -52604
## - avg_qbtdp_plyr  1    7617.6 11579.4 -23674
## 
## Step:  AIC=-53151.48
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + HOU + IND + JAC + KC + MINN + NE + NOR + NYG + 
##     NYJ + OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - JAC             1       0.0  3961.9 -53153
## - grass_1         1       0.1  3961.9 -53153
## - BUF             1       0.1  3962.0 -53153
## - hot_weather     1       0.1  3962.0 -53153
## - DET             1       0.2  3962.0 -53152
## - PIT             1       0.2  3962.0 -53152
## - STL             1       0.2  3962.1 -53152
## - CAR             1       0.2  3962.1 -53152
## - CIN             1       0.2  3962.1 -53152
## - OAK             1       0.3  3962.1 -53152
## <none>                         3961.9 -53151
## - ATL             1       0.4  3962.2 -53151
## - NYJ             1       0.4  3962.2 -53151
## - TEN             1       0.4  3962.3 -53151
## - CHI             1       0.5  3962.4 -53150
## - bad_weather_1   1       0.7  3962.6 -53149
## - WAS             1       0.7  3962.6 -53149
## - DEN             1       0.8  3962.6 -53148
## - IND             1       0.8  3962.6 -53148
## - PHI             1       0.8  3962.7 -53148
## - KC              1       0.8  3962.7 -53148
## - cold_weather    1       0.9  3962.8 -53147
## - TB              1       1.1  3962.9 -53146
## - MINN            1       1.1  3963.0 -53146
## - CLE             1       1.3  3963.2 -53145
## - HOU             1       1.3  3963.2 -53144
## - NOR             1       1.8  3963.6 -53141
## - NYG             1       2.3  3964.2 -53137
## - DAL             1       2.4  3964.2 -53137
## - avg_rbry_pos    1       3.1  3965.0 -53132
## - forty1          1       3.4  3965.3 -53130
## - SD              1       3.6  3965.5 -53129
## - vertical1       1       3.9  3965.7 -53127
## - avg_rectd_plyr  1       4.1  3966.0 -53125
## - NE              1       6.2  3968.0 -53111
## - GB              1       8.1  3970.0 -53097
## - weight          1       9.1  3971.0 -53090
## - avg_rbry_plyr   1      10.8  3972.6 -53079
## - height          1      17.4  3979.3 -53033
## - avg_fuml_plyr   1      79.8  4041.7 -52605
## - avg_qbtdp_plyr  1    7623.0 11584.9 -23663
## 
## Step:  AIC=-53153.32
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ + 
##     OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - grass_1         1       0.1  3961.9 -53155
## - BUF             1       0.1  3962.0 -53155
## - hot_weather     1       0.1  3962.0 -53155
## - STL             1       0.2  3962.1 -53154
## - DET             1       0.2  3962.1 -53154
## - PIT             1       0.2  3962.1 -53154
## - CIN             1       0.3  3962.2 -53153
## - CAR             1       0.3  3962.2 -53153
## <none>                         3961.9 -53153
## - OAK             1       0.3  3962.2 -53153
## - ATL             1       0.4  3962.3 -53153
## - NYJ             1       0.4  3962.3 -53153
## - TEN             1       0.4  3962.3 -53152
## - CHI             1       0.6  3962.5 -53151
## - WAS             1       0.7  3962.6 -53150
## - bad_weather_1   1       0.7  3962.6 -53150
## - PHI             1       0.8  3962.7 -53150
## - KC              1       0.8  3962.7 -53150
## - DEN             1       0.8  3962.7 -53150
## - IND             1       0.8  3962.7 -53150
## - cold_weather    1       0.9  3962.8 -53149
## - MINN            1       1.1  3963.0 -53148
## - TB              1       1.1  3963.0 -53147
## - CLE             1       1.3  3963.2 -53146
## - HOU             1       1.3  3963.2 -53146
## - NOR             1       1.9  3963.8 -53142
## - NYG             1       2.4  3964.3 -53138
## - DAL             1       2.5  3964.4 -53138
## - avg_rbry_pos    1       3.1  3965.0 -53134
## - forty1          1       3.4  3965.3 -53132
## - SD              1       3.8  3965.7 -53129
## - vertical1       1       3.8  3965.7 -53129
## - avg_rectd_plyr  1       4.1  3966.0 -53127
## - NE              1       6.4  3968.3 -53111
## - GB              1       8.5  3970.4 -53096
## - weight          1       9.1  3971.0 -53092
## - avg_rbry_plyr   1      10.7  3972.6 -53081
## - height          1      17.4  3979.3 -53035
## - avg_fuml_plyr   1      79.8  4041.7 -52607
## - avg_qbtdp_plyr  1    7623.0 11584.9 -23665
## 
## Step:  AIC=-53154.92
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ATL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ + 
##     OAK + PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - BUF             1       0.1  3962.0 -53156
## - hot_weather     1       0.1  3962.1 -53156
## - DET             1       0.2  3962.1 -53156
## - STL             1       0.2  3962.1 -53156
## - PIT             1       0.2  3962.2 -53155
## - CIN             1       0.3  3962.2 -53155
## <none>                         3961.9 -53155
## - CAR             1       0.3  3962.2 -53155
## - OAK             1       0.3  3962.3 -53155
## - NYJ             1       0.4  3962.3 -53154
## - ATL             1       0.4  3962.3 -53154
## - TEN             1       0.5  3962.4 -53154
## - CHI             1       0.6  3962.6 -53153
## - WAS             1       0.7  3962.6 -53152
## - bad_weather_1   1       0.7  3962.7 -53152
## - PHI             1       0.8  3962.7 -53152
## - KC              1       0.8  3962.7 -53152
## - IND             1       0.8  3962.7 -53151
## - DEN             1       0.9  3962.8 -53151
## - cold_weather    1       1.0  3962.9 -53150
## - MINN            1       1.1  3963.1 -53149
## - TB              1       1.2  3963.1 -53149
## - CLE             1       1.2  3963.2 -53148
## - HOU             1       1.3  3963.3 -53148
## - NOR             1       1.8  3963.8 -53144
## - NYG             1       2.4  3964.3 -53140
## - DAL             1       2.4  3964.4 -53140
## - avg_rbry_pos    1       3.1  3965.1 -53135
## - forty1          1       3.4  3965.4 -53133
## - vertical1       1       3.8  3965.8 -53130
## - SD              1       3.9  3965.9 -53130
## - avg_rectd_plyr  1       4.1  3966.1 -53128
## - NE              1       6.4  3968.3 -53113
## - GB              1       8.6  3970.6 -53097
## - weight          1       9.1  3971.1 -53094
## - avg_rbry_plyr   1      10.8  3972.7 -53082
## - height          1      17.4  3979.3 -53037
## - avg_fuml_plyr   1      79.8  4041.7 -52609
## - avg_qbtdp_plyr  1    7623.0 11584.9 -23667
## 
## Step:  AIC=-53156.26
## pc ~ height + weight + cold_weather + hot_weather + forty1 + 
##     vertical1 + ATL + CAR + CHI + CIN + CLE + DAL + DEN + DET + 
##     GB + HOU + IND + KC + MINN + NE + NOR + NYG + NYJ + OAK + 
##     PHI + PIT + SD + STL + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - hot_weather     1       0.1  3962.2 -53157
## - STL             1       0.2  3962.2 -53157
## - DET             1       0.2  3962.3 -53157
## - PIT             1       0.3  3962.3 -53156
## <none>                         3962.0 -53156
## - CIN             1       0.3  3962.3 -53156
## - CAR             1       0.4  3962.4 -53156
## - OAK             1       0.4  3962.4 -53156
## - ATL             1       0.4  3962.5 -53155
## - NYJ             1       0.4  3962.5 -53155
## - TEN             1       0.5  3962.6 -53154
## - WAS             1       0.6  3962.6 -53154
## - PHI             1       0.7  3962.7 -53153
## - KC              1       0.7  3962.8 -53153
## - bad_weather_1   1       0.7  3962.8 -53153
## - CHI             1       0.7  3962.8 -53153
## - IND             1       0.9  3962.9 -53152
## - cold_weather    1       0.9  3963.0 -53152
## - DEN             1       1.0  3963.0 -53151
## - MINN            1       1.0  3963.1 -53151
## - CLE             1       1.2  3963.2 -53150
## - HOU             1       1.3  3963.3 -53149
## - TB              1       1.3  3963.3 -53149
## - NOR             1       2.0  3964.1 -53144
## - NYG             1       2.6  3964.6 -53140
## - DAL             1       2.6  3964.7 -53140
## - avg_rbry_pos    1       3.2  3965.2 -53136
## - forty1          1       3.4  3965.4 -53135
## - vertical1       1       3.9  3966.0 -53131
## - avg_rectd_plyr  1       4.1  3966.2 -53130
## - SD              1       4.2  3966.2 -53129
## - NE              1       6.7  3968.7 -53112
## - GB              1       9.1  3971.1 -53095
## - weight          1       9.2  3971.2 -53095
## - avg_rbry_plyr   1      10.8  3972.8 -53084
## - height          1      17.6  3979.6 -53037
## - avg_fuml_plyr   1      80.0  4042.0 -52609
## - avg_qbtdp_plyr  1    7628.2 11590.3 -23657
## 
## Step:  AIC=-53157.45
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CAR + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND + 
##     KC + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - STL             1       0.2  3962.3 -53158
## - DET             1       0.2  3962.4 -53158
## - PIT             1       0.3  3962.4 -53157
## <none>                         3962.2 -53157
## - CIN             1       0.3  3962.5 -53157
## - CAR             1       0.4  3962.5 -53157
## - OAK             1       0.4  3962.5 -53157
## - ATL             1       0.4  3962.6 -53156
## - NYJ             1       0.5  3962.6 -53156
## - TEN             1       0.5  3962.7 -53156
## - WAS             1       0.6  3962.8 -53155
## - CHI             1       0.7  3962.9 -53155
## - bad_weather_1   1       0.7  3962.9 -53155
## - PHI             1       0.7  3962.9 -53155
## - KC              1       0.7  3962.9 -53154
## - IND             1       0.9  3963.0 -53153
## - cold_weather    1       0.9  3963.1 -53153
## - DEN             1       1.0  3963.1 -53153
## - MINN            1       1.0  3963.2 -53152
## - CLE             1       1.2  3963.3 -53151
## - HOU             1       1.3  3963.4 -53151
## - TB              1       1.3  3963.5 -53150
## - NOR             1       2.0  3964.2 -53145
## - NYG             1       2.6  3964.7 -53142
## - DAL             1       2.6  3964.8 -53141
## - avg_rbry_pos    1       3.2  3965.3 -53137
## - forty1          1       3.4  3965.5 -53136
## - vertical1       1       3.9  3966.1 -53132
## - avg_rectd_plyr  1       4.1  3966.3 -53131
## - SD              1       4.3  3966.4 -53130
## - NE              1       6.7  3968.8 -53113
## - GB              1       9.1  3971.2 -53097
## - weight          1       9.2  3971.3 -53096
## - avg_rbry_plyr   1      10.8  3972.9 -53085
## - height          1      17.6  3979.7 -53038
## - avg_fuml_plyr   1      80.0  4042.1 -52610
## - avg_qbtdp_plyr  1    7628.5 11590.6 -23658
## 
## Step:  AIC=-53158.35
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CAR + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND + 
##     KC + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - DET             1       0.3  3962.6 -53159
## <none>                         3962.3 -53158
## - PIT             1       0.3  3962.7 -53158
## - CIN             1       0.4  3962.7 -53158
## - CAR             1       0.4  3962.7 -53157
## - OAK             1       0.5  3962.8 -53157
## - ATL             1       0.5  3962.8 -53157
## - NYJ             1       0.5  3962.8 -53157
## - WAS             1       0.6  3962.9 -53157
## - TEN             1       0.6  3962.9 -53156
## - PHI             1       0.6  3963.0 -53156
## - KC              1       0.6  3963.0 -53156
## - bad_weather_1   1       0.7  3963.0 -53155
## - CHI             1       0.8  3963.1 -53155
## - cold_weather    1       0.9  3963.3 -53154
## - MINN            1       1.0  3963.3 -53154
## - IND             1       1.0  3963.3 -53153
## - CLE             1       1.1  3963.4 -53153
## - DEN             1       1.1  3963.4 -53153
## - HOU             1       1.2  3963.5 -53152
## - TB              1       1.5  3963.8 -53150
## - NOR             1       2.2  3964.5 -53145
## - NYG             1       2.8  3965.1 -53141
## - DAL             1       2.8  3965.1 -53141
## - avg_rbry_pos    1       3.2  3965.5 -53138
## - forty1          1       3.4  3965.7 -53137
## - vertical1       1       4.0  3966.3 -53133
## - avg_rectd_plyr  1       4.2  3966.5 -53131
## - SD              1       4.5  3966.9 -53129
## - NE              1       7.0  3969.3 -53112
## - weight          1       9.3  3971.6 -53096
## - GB              1       9.5  3971.8 -53095
## - avg_rbry_plyr   1      10.8  3973.1 -53085
## - height          1      17.6  3979.9 -53038
## - avg_fuml_plyr   1      80.2  4042.5 -52610
## - avg_qbtdp_plyr  1    7646.7 11609.0 -23616
## 
## Step:  AIC=-53158.56
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CAR + CHI + CIN + CLE + DAL + DEN + GB + HOU + IND + KC + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + TB + 
##     TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - PIT             1       0.3  3962.9 -53159
## <none>                         3962.6 -53159
## - CIN             1       0.3  3962.9 -53158
## - CAR             1       0.4  3962.9 -53158
## - OAK             1       0.4  3963.0 -53158
## - ATL             1       0.4  3963.0 -53158
## - NYJ             1       0.5  3963.0 -53157
## - TEN             1       0.6  3963.1 -53157
## - WAS             1       0.6  3963.2 -53156
## - CHI             1       0.7  3963.3 -53156
## - bad_weather_1   1       0.7  3963.3 -53155
## - PHI             1       0.7  3963.3 -53155
## - KC              1       0.7  3963.3 -53155
## - cold_weather    1       0.9  3963.5 -53154
## - IND             1       0.9  3963.5 -53154
## - DEN             1       1.0  3963.6 -53154
## - MINN            1       1.1  3963.7 -53153
## - CLE             1       1.2  3963.8 -53152
## - HOU             1       1.3  3963.9 -53151
## - TB              1       1.4  3963.9 -53151
## - NOR             1       2.0  3964.6 -53146
## - NYG             1       2.6  3965.2 -53142
## - DAL             1       2.7  3965.2 -53142
## - avg_rbry_pos    1       3.1  3965.7 -53139
## - forty1          1       3.4  3965.9 -53137
## - vertical1       1       4.1  3966.6 -53132
## - avg_rectd_plyr  1       4.3  3966.9 -53130
## - SD              1       4.4  3966.9 -53130
## - NE              1       6.8  3969.4 -53113
## - GB              1       9.3  3971.8 -53096
## - weight          1       9.3  3971.8 -53096
## - avg_rbry_plyr   1      10.7  3973.3 -53086
## - height          1      17.7  3980.2 -53038
## - avg_fuml_plyr   1      80.0  4042.6 -52611
## - avg_qbtdp_plyr  1    7646.5 11609.0 -23618
## 
## Step:  AIC=-53158.57
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CAR + CHI + CIN + CLE + DAL + DEN + GB + HOU + IND + KC + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - CIN             1       0.3  3963.1 -53159
## <none>                         3962.9 -53159
## - CAR             1       0.3  3963.2 -53159
## - OAK             1       0.3  3963.2 -53158
## - ATL             1       0.4  3963.2 -53158
## - NYJ             1       0.4  3963.2 -53158
## - TEN             1       0.5  3963.3 -53157
## - CHI             1       0.6  3963.5 -53156
## - WAS             1       0.7  3963.6 -53155
## - bad_weather_1   1       0.8  3963.6 -53155
## - IND             1       0.8  3963.7 -53155
## - PHI             1       0.8  3963.7 -53155
## - KC              1       0.9  3963.7 -53155
## - DEN             1       0.9  3963.8 -53154
## - cold_weather    1       1.0  3963.9 -53154
## - MINN            1       1.2  3964.1 -53152
## - TB              1       1.3  3964.1 -53152
## - CLE             1       1.4  3964.2 -53151
## - HOU             1       1.5  3964.3 -53150
## - NOR             1       1.9  3964.8 -53147
## - NYG             1       2.5  3965.3 -53143
## - DAL             1       2.5  3965.4 -53143
## - avg_rbry_pos    1       3.1  3965.9 -53139
## - forty1          1       3.4  3966.2 -53137
## - vertical1       1       4.1  3966.9 -53132
## - SD              1       4.2  3967.0 -53132
## - avg_rectd_plyr  1       4.4  3967.3 -53130
## - NE              1       6.6  3969.4 -53115
## - GB              1       9.0  3971.9 -53098
## - weight          1       9.2  3972.1 -53097
## - avg_rbry_plyr   1      10.7  3973.6 -53086
## - height          1      17.7  3980.5 -53038
## - avg_fuml_plyr   1      79.9  4042.7 -52612
## - avg_qbtdp_plyr  1    7646.4 11609.3 -23620
## 
## Step:  AIC=-53158.83
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CAR + CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + 
##     NE + NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - CAR             1       0.2  3963.4 -53159
## - OAK             1       0.3  3963.4 -53159
## <none>                         3963.1 -53159
## - ATL             1       0.3  3963.4 -53159
## - NYJ             1       0.3  3963.4 -53159
## - TEN             1       0.4  3963.5 -53158
## - CHI             1       0.6  3963.7 -53157
## - IND             1       0.7  3963.8 -53156
## - bad_weather_1   1       0.8  3963.9 -53156
## - DEN             1       0.8  3963.9 -53155
## - WAS             1       0.8  3963.9 -53155
## - PHI             1       0.9  3964.0 -53154
## - KC              1       1.0  3964.1 -53154
## - cold_weather    1       1.0  3964.2 -53154
## - TB              1       1.2  3964.3 -53153
## - MINN            1       1.3  3964.4 -53152
## - CLE             1       1.5  3964.6 -53151
## - HOU             1       1.6  3964.7 -53150
## - NOR             1       1.8  3964.9 -53148
## - NYG             1       2.3  3965.5 -53145
## - DAL             1       2.4  3965.5 -53144
## - avg_rbry_pos    1       3.1  3966.2 -53139
## - forty1          1       3.3  3966.4 -53138
## - SD              1       4.0  3967.1 -53133
## - vertical1       1       4.0  3967.2 -53133
## - avg_rectd_plyr  1       4.4  3967.5 -53130
## - NE              1       6.4  3969.5 -53117
## - GB              1       8.8  3971.9 -53100
## - weight          1       9.1  3972.2 -53098
## - avg_rbry_plyr   1      10.8  3973.9 -53086
## - height          1      17.5  3980.7 -53039
## - avg_fuml_plyr   1      79.9  4043.1 -52612
## - avg_qbtdp_plyr  1    7648.3 11611.4 -23617
## 
## Step:  AIC=-53159.09
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + 
##     NOR + NYG + NYJ + OAK + PHI + SD + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - OAK             1       0.2  3963.6 -53159
## - ATL             1       0.3  3963.6 -53159
## <none>                         3963.4 -53159
## - NYJ             1       0.3  3963.6 -53159
## - TEN             1       0.4  3963.7 -53159
## - CHI             1       0.5  3963.9 -53158
## - IND             1       0.7  3964.0 -53156
## - DEN             1       0.7  3964.1 -53156
## - bad_weather_1   1       0.8  3964.1 -53156
## - WAS             1       0.9  3964.3 -53155
## - PHI             1       1.0  3964.4 -53154
## - cold_weather    1       1.0  3964.4 -53154
## - KC              1       1.0  3964.4 -53154
## - TB              1       1.1  3964.4 -53154
## - MINN            1       1.4  3964.8 -53151
## - CLE             1       1.6  3964.9 -53150
## - NOR             1       1.7  3965.1 -53149
## - HOU             1       1.7  3965.1 -53149
## - NYG             1       2.2  3965.6 -53146
## - DAL             1       2.3  3965.6 -53145
## - avg_rbry_pos    1       3.2  3966.5 -53139
## - forty1          1       3.4  3966.7 -53138
## - SD              1       3.9  3967.3 -53134
## - vertical1       1       4.1  3967.4 -53133
## - avg_rectd_plyr  1       4.4  3967.7 -53131
## - NE              1       6.2  3969.6 -53118
## - GB              1       8.6  3972.0 -53101
## - weight          1       9.3  3972.6 -53097
## - avg_rbry_plyr   1      10.9  3974.3 -53086
## - height          1      17.7  3981.0 -53039
## - avg_fuml_plyr   1      79.9  4043.3 -52612
## - avg_qbtdp_plyr  1    7649.1 11612.4 -23616
## 
## Step:  AIC=-53159.45
## pc ~ height + weight + cold_weather + forty1 + vertical1 + ATL + 
##     CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + 
##     NOR + NYG + NYJ + PHI + SD + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - ATL             1       0.2  3963.8 -53160
## - NYJ             1       0.3  3963.9 -53160
## <none>                         3963.6 -53159
## - TEN             1       0.3  3963.9 -53159
## - CHI             1       0.5  3964.1 -53158
## - IND             1       0.6  3964.2 -53157
## - DEN             1       0.7  3964.3 -53157
## - bad_weather_1   1       0.8  3964.4 -53156
## - cold_weather    1       1.0  3964.6 -53155
## - WAS             1       1.0  3964.6 -53155
## - TB              1       1.0  3964.6 -53154
## - PHI             1       1.1  3964.7 -53154
## - KC              1       1.1  3964.7 -53154
## - MINN            1       1.5  3965.1 -53151
## - NOR             1       1.6  3965.2 -53150
## - CLE             1       1.7  3965.3 -53150
## - HOU             1       1.8  3965.4 -53149
## - NYG             1       2.1  3965.7 -53147
## - DAL             1       2.2  3965.8 -53146
## - avg_rbry_pos    1       3.1  3966.7 -53140
## - forty1          1       3.5  3967.1 -53137
## - SD              1       3.8  3967.4 -53135
## - vertical1       1       4.0  3967.6 -53134
## - avg_rectd_plyr  1       4.3  3967.9 -53132
## - NE              1       6.1  3969.7 -53119
## - GB              1       8.5  3972.0 -53103
## - weight          1       9.2  3972.8 -53098
## - avg_rbry_plyr   1      10.8  3974.4 -53086
## - height          1      17.5  3981.1 -53041
## - avg_fuml_plyr   1      80.2  4043.8 -52611
## - avg_qbtdp_plyr  1    7648.9 11612.5 -23618
## 
## Step:  AIC=-53159.75
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI + 
##     CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR + 
##     NYG + NYJ + PHI + SD + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - NYJ             1       0.2  3964.1 -53160
## <none>                         3963.8 -53160
## - TEN             1       0.3  3964.1 -53160
## - CHI             1       0.4  3964.3 -53159
## - IND             1       0.6  3964.4 -53158
## - DEN             1       0.6  3964.5 -53157
## - bad_weather_1   1       0.8  3964.6 -53156
## - cold_weather    1       0.9  3964.8 -53155
## - TB              1       0.9  3964.8 -53155
## - WAS             1       1.1  3964.9 -53154
## - PHI             1       1.2  3965.0 -53154
## - KC              1       1.2  3965.1 -53153
## - NOR             1       1.5  3965.4 -53151
## - MINN            1       1.6  3965.5 -53151
## - CLE             1       1.8  3965.6 -53149
## - HOU             1       2.0  3965.8 -53148
## - NYG             1       2.0  3965.9 -53148
## - DAL             1       2.1  3965.9 -53147
## - avg_rbry_pos    1       3.1  3966.9 -53141
## - forty1          1       3.5  3967.3 -53138
## - SD              1       3.7  3967.5 -53136
## - vertical1       1       3.9  3967.8 -53135
## - avg_rectd_plyr  1       4.5  3968.3 -53131
## - NE              1       5.9  3969.8 -53121
## - GB              1       8.3  3972.1 -53104
## - weight          1       9.2  3973.0 -53098
## - avg_rbry_plyr   1      10.9  3974.7 -53087
## - height          1      17.7  3981.5 -53040
## - avg_fuml_plyr   1      80.7  4044.6 -52607
## - avg_qbtdp_plyr  1    7659.4 11623.2 -23595
## 
## Step:  AIC=-53160.2
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI + 
##     CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR + 
##     NYG + PHI + SD + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## - TEN             1       0.3  3964.3 -53160
## <none>                         3964.1 -53160
## - CHI             1       0.4  3964.5 -53160
## - IND             1       0.5  3964.6 -53159
## - DEN             1       0.6  3964.6 -53158
## - bad_weather_1   1       0.8  3964.8 -53157
## - TB              1       0.9  3965.0 -53156
## - cold_weather    1       1.0  3965.0 -53156
## - WAS             1       1.1  3965.2 -53154
## - PHI             1       1.3  3965.3 -53154
## - KC              1       1.3  3965.4 -53153
## - NOR             1       1.4  3965.5 -53152
## - MINN            1       1.7  3965.8 -53150
## - CLE             1       1.9  3965.9 -53149
## - NYG             1       2.0  3966.0 -53149
## - DAL             1       2.0  3966.1 -53148
## - HOU             1       2.1  3966.1 -53148
## - avg_rbry_pos    1       3.1  3967.2 -53141
## - forty1          1       3.4  3967.5 -53139
## - SD              1       3.6  3967.6 -53138
## - vertical1       1       4.1  3968.1 -53134
## - avg_rectd_plyr  1       4.4  3968.5 -53131
## - NE              1       5.8  3969.9 -53122
## - GB              1       8.1  3972.2 -53106
## - weight          1       9.2  3973.2 -53099
## - avg_rbry_plyr   1      10.9  3975.0 -53087
## - height          1      17.7  3981.7 -53040
## - avg_fuml_plyr   1      80.5  4044.6 -52609
## - avg_qbtdp_plyr  1    7669.1 11633.2 -23573
## 
## Step:  AIC=-53160.4
## pc ~ height + weight + cold_weather + forty1 + vertical1 + CHI + 
##     CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + NOR + 
##     NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq     RSS    AIC
## <none>                         3964.3 -53160
## - CHI             1       0.4  3964.7 -53160
## - IND             1       0.5  3964.8 -53159
## - DEN             1       0.5  3964.9 -53159
## - bad_weather_1   1       0.7  3965.1 -53157
## - TB              1       0.8  3965.2 -53157
## - cold_weather    1       0.9  3965.3 -53156
## - WAS             1       1.2  3965.5 -53154
## - PHI             1       1.3  3965.7 -53153
## - KC              1       1.4  3965.7 -53153
## - NOR             1       1.4  3965.7 -53153
## - MINN            1       1.8  3966.1 -53150
## - NYG             1       1.9  3966.2 -53149
## - DAL             1       1.9  3966.2 -53149
## - CLE             1       2.0  3966.3 -53149
## - HOU             1       2.2  3966.5 -53147
## - avg_rbry_pos    1       3.1  3967.4 -53141
## - forty1          1       3.4  3967.7 -53139
## - SD              1       3.5  3967.8 -53138
## - vertical1       1       4.1  3968.4 -53134
## - avg_rectd_plyr  1       4.4  3968.7 -53132
## - NE              1       5.7  3970.0 -53123
## - GB              1       8.0  3972.3 -53107
## - weight          1       9.1  3973.5 -53099
## - avg_rbry_plyr   1      10.9  3975.2 -53087
## - height          1      17.6  3981.9 -53041
## - avg_fuml_plyr   1      80.4  4044.7 -52611
## - avg_qbtdp_plyr  1    7679.4 11643.7 -23550
summary(aic_pc)
## 
## Call:
## lm(formula = pc ~ height + weight + cold_weather + forty1 + vertical1 + 
##     CHI + CLE + DAL + DEN + GB + HOU + IND + KC + MINN + NE + 
##     NOR + NYG + PHI + SD + TB + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, 
##     data = trainTransformedpc)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.2068 -0.0552 -0.0143  0.0317  4.6776 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     6.082e-16  2.292e-03   0.000 1.000000    
## height          4.873e-02  4.411e-03  11.047  < 2e-16 ***
## weight         -3.297e-02  4.147e-03  -7.950 1.94e-15 ***
## cold_weather   -6.022e-03  2.358e-03  -2.553 0.010670 *  
## forty1          1.898e-02  3.928e-03   4.833 1.35e-06 ***
## vertical1      -1.607e-02  3.010e-03  -5.340 9.39e-08 ***
## CHI            -3.643e-03  2.333e-03  -1.562 0.118403    
## CLE             8.645e-03  2.341e-03   3.693 0.000222 ***
## DAL            -8.496e-03  2.332e-03  -3.644 0.000269 ***
## DEN            -4.509e-03  2.336e-03  -1.930 0.053581 .  
## GB             -1.755e-02  2.358e-03  -7.442 1.02e-13 ***
## HOU             9.032e-03  2.337e-03   3.865 0.000111 ***
## IND            -4.202e-03  2.331e-03  -1.802 0.071503 .  
## KC              7.177e-03  2.331e-03   3.079 0.002079 ** 
## MINN            8.242e-03  2.334e-03   3.531 0.000414 ***
## NE             -1.501e-02  2.390e-03  -6.283 3.36e-10 ***
## NOR            -7.247e-03  2.349e-03  -3.085 0.002037 ** 
## NYG            -8.436e-03  2.335e-03  -3.613 0.000303 ***
## PHI             7.067e-03  2.330e-03   3.034 0.002419 ** 
## SD             -1.141e-02  2.333e-03  -4.890 1.01e-06 ***
## TB             -5.606e-03  2.329e-03  -2.407 0.016071 *  
## WAS             6.781e-03  2.338e-03   2.901 0.003728 ** 
## avg_rectd_plyr -1.596e-02  2.905e-03  -5.495 3.94e-08 ***
## avg_rbry_plyr  -3.032e-02  3.491e-03  -8.686  < 2e-16 ***
## avg_rbry_pos    1.889e-02  4.062e-03   4.649 3.35e-06 ***
## avg_fuml_plyr   7.950e-02  3.370e-03  23.591  < 2e-16 ***
## avg_qbtdp_plyr  8.434e-01  3.657e-03 230.620  < 2e-16 ***
## bad_weather_1  -5.250e-03  2.326e-03  -2.258 0.023981 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.38 on 27456 degrees of freedom
## Multiple R-squared:  0.8558, Adjusted R-squared:  0.8556 
## F-statistic:  6033 on 27 and 27456 DF,  p-value: < 2.2e-16

RandomForest:

forest_pc <- randomForest(pcregform, data = trainTransformedpc, 
                          importance = TRUE, ntree = 500)
plot(forest_pc)

varImpPlot(forest_pc)

Ints

PreProcess:

set.seed(123)
splitints <- sample.split(nfl_data$ints, SplitRatio = 0.7)
Trainints <- subset(nfl_data, split == TRUE)
Testints <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainints, method = c("center", "scale"))
trainTransformedints <- predict(preProcValues, Trainints)
testTransformedints <- predict(preProcValues, Testints)

ggpairs:

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("ints",colnames(filtered_nfl_data_fields[46:51]))])

intsregform <- formula(paste("ints ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegQBInts <- lm(intsregform, data = trainTransformedints)
summary(linRegQBInts) 

linRegQBInts2 <- lm(ints ~ avg_qbints_plyr, data = trainTransformedints)
summary(linRegQBInts2)
## 
## Call:
## lm(formula = ints ~ avg_qbints_plyr, data = trainTransformedints)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.0750 -0.0018 -0.0018 -0.0018 11.2261 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     -2.104e-15  4.606e-03     0.0        1    
## avg_qbints_plyr  6.457e-01  4.606e-03   140.2   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7636 on 27482 degrees of freedom
## Multiple R-squared:  0.417,  Adjusted R-squared:  0.4169 
## F-statistic: 1.965e+04 on 1 and 27482 DF,  p-value: < 2.2e-16

R2 of 0.4169, and really the only meaningful predictor was “how many interceptions have you thrown in the past”. Not an entirely amazing model, but at least we have something here.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

PintPredicted <- predict(linRegQBInts2, newdata = testTransformedints)

SSEint <- sum((PintPredicted - testTransformedints$ints)^2)
SSTint <- sum((mean(c(testTransformedints$ints,trainTransformedints$ints))-testTransformedints$ints)^2)
r2_int <- 1 - SSEint/SSTint 
r2_int
## [1] 0.4479224
rmse_int <- sqrt(SSEint/nrow(testTransformedints))
rmse_int
## [1] 0.7879945

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBInts2, which = c(1:3,5))

Summary statistics:

confint(linRegQBInts2)
##                        2.5 %      97.5 %
## (Intercept)     -0.009027885 0.009027885
## avg_qbints_plyr  0.636692876 0.654748974
coef(summary(linRegQBInts2))
##                      Estimate  Std. Error       t value Pr(>|t|)
## (Intercept)     -2.104007e-15 0.004605945 -4.568024e-13        1
## avg_qbints_plyr  6.457209e-01 0.004606029  1.401904e+02        0
anova(linRegQBInts2)
## Analysis of Variance Table
## 
## Response: ints
##                    Df Sum Sq Mean Sq F value    Pr(>F)    
## avg_qbints_plyr     1  11459 11459.2   19653 < 2.2e-16 ***
## Residuals       27482  16024     0.6                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_ints <- step(lm(intsregform, data = trainTransformedints), direction = "backward")
## Start:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     avg_qbtdp_team + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-12530.92
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - KC              1      0.00 17363 -12532.9
## - TEN             1      0.00 17363 -12532.9
## - grass_1         1      0.01 17363 -12532.9
## - NYG             1      0.01 17363 -12532.9
## - TB              1      0.02 17363 -12532.9
## - CHI             1      0.02 17363 -12532.9
## - DEN             1      0.05 17363 -12532.8
## - MIA             1      0.07 17363 -12532.8
## - SEA             1      0.10 17363 -12532.8
## - hot_weather     1      0.10 17363 -12532.8
## - DET             1      0.11 17363 -12532.7
## - STL             1      0.19 17363 -12532.6
## - NOR             1      0.19 17363 -12532.6
## - DAL             1      0.25 17363 -12532.5
## - CIN             1      0.35 17363 -12532.4
## - PIT             1      0.38 17363 -12532.3
## - ATL             1      0.39 17363 -12532.3
## - IND             1      0.41 17363 -12532.3
## - SD              1      0.71 17363 -12531.8
## - BAL             1      0.81 17364 -12531.6
## - home_team_1     1      0.84 17364 -12531.6
## - cold_weather    1      0.96 17364 -12531.4
## - BUF             1      0.96 17364 -12531.4
## <none>                        17363 -12530.9
## - HOU             1      1.29 17364 -12530.9
## - WAS             1      1.37 17364 -12530.7
## - vertical1       1      1.41 17364 -12530.7
## - ARI             1      1.45 17364 -12530.6
## - OAK             1      1.61 17364 -12530.4
## - NYJ             1      1.63 17364 -12530.3
## - MINN            1      1.64 17364 -12530.3
## - PHI             1      1.68 17364 -12530.3
## - bad_weather_1   1      1.85 17365 -12530.0
## - CAR             1      2.31 17365 -12529.3
## - CLE             1      2.54 17365 -12528.9
## - JAC             1      3.47 17366 -12527.4
## - avg_rbry_pos    1      3.67 17366 -12527.1
## - GB              1      4.52 17367 -12525.8
## - avg_rectd_plyr  1      7.20 17370 -12521.5
## - NE              1      7.27 17370 -12521.4
## - weight          1      9.60 17372 -12517.7
## - forty1          1     10.45 17373 -12516.4
## - height          1     19.34 17382 -12502.3
## - avg_rbry_plyr   1     30.17 17393 -12485.2
## - avg_fuml_plyr   1    238.61 17601 -12157.8
## - avg_qbtdp_plyr  1   2385.32 19748  -8994.9
## 
## Step:  AIC=-12532.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + 
##     STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - TEN             1      0.00 17363 -12534.9
## - NYG             1      0.00 17363 -12534.9
## - grass_1         1      0.01 17363 -12534.9
## - TB              1      0.02 17363 -12534.9
## - CHI             1      0.02 17363 -12534.9
## - MIA             1      0.07 17363 -12534.8
## - DEN             1      0.08 17363 -12534.8
## - hot_weather     1      0.10 17363 -12534.7
## - SEA             1      0.11 17363 -12534.7
## - DET             1      0.16 17363 -12534.7
## - STL             1      0.21 17363 -12534.6
## - NOR             1      0.29 17363 -12534.5
## - DAL             1      0.36 17363 -12534.3
## - CIN             1      0.42 17363 -12534.3
## - IND             1      0.50 17363 -12534.1
## - ATL             1      0.55 17363 -12534.0
## - PIT             1      0.56 17363 -12534.0
## - home_team_1     1      0.84 17364 -12533.6
## - cold_weather    1      0.96 17364 -12533.4
## - SD              1      0.98 17364 -12533.4
## - BAL             1      1.01 17364 -12533.3
## - BUF             1      1.19 17364 -12533.0
## <none>                        17363 -12532.9
## - vertical1       1      1.41 17364 -12532.7
## - HOU             1      1.62 17364 -12532.4
## - WAS             1      1.74 17364 -12532.2
## - ARI             1      1.81 17365 -12532.0
## - bad_weather_1   1      1.85 17365 -12532.0
## - MINN            1      2.05 17365 -12531.7
## - NYJ             1      2.05 17365 -12531.7
## - OAK             1      2.06 17365 -12531.6
## - PHI             1      2.11 17365 -12531.6
## - CAR             1      2.94 17366 -12530.3
## - CLE             1      3.25 17366 -12529.8
## - avg_rbry_pos    1      3.68 17366 -12529.1
## - JAC             1      4.41 17367 -12527.9
## - GB              1      6.21 17369 -12525.1
## - avg_rectd_plyr  1      7.22 17370 -12523.5
## - weight          1      9.61 17372 -12519.7
## - NE              1      9.72 17372 -12519.5
## - forty1          1     10.45 17373 -12518.4
## - height          1     19.38 17382 -12504.3
## - avg_rbry_plyr   1     30.18 17393 -12487.2
## - avg_fuml_plyr   1    238.62 17601 -12159.8
## - avg_qbtdp_plyr  1   2386.52 19749  -8995.3
## 
## Step:  AIC=-12534.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + 
##     STL + TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - NYG             1      0.00 17363 -12536.9
## - grass_1         1      0.01 17363 -12536.9
## - TB              1      0.01 17363 -12536.9
## - CHI             1      0.01 17363 -12536.9
## - MIA             1      0.07 17363 -12536.8
## - DEN             1      0.10 17363 -12536.8
## - hot_weather     1      0.10 17363 -12536.7
## - SEA             1      0.11 17363 -12536.7
## - DET             1      0.19 17363 -12536.6
## - STL             1      0.22 17363 -12536.6
## - NOR             1      0.34 17363 -12536.4
## - DAL             1      0.42 17363 -12536.2
## - CIN             1      0.44 17363 -12536.2
## - IND             1      0.53 17363 -12536.1
## - ATL             1      0.64 17363 -12535.9
## - PIT             1      0.65 17363 -12535.9
## - home_team_1     1      0.84 17364 -12535.6
## - cold_weather    1      0.96 17364 -12535.4
## - BAL             1      1.10 17364 -12535.2
## - SD              1      1.13 17364 -12535.1
## <none>                        17363 -12534.9
## - BUF             1      1.28 17364 -12534.9
## - vertical1       1      1.41 17364 -12534.7
## - HOU             1      1.76 17364 -12534.1
## - bad_weather_1   1      1.85 17365 -12534.0
## - WAS             1      1.90 17365 -12533.9
## - ARI             1      1.97 17365 -12533.8
## - MINN            1      2.23 17365 -12533.4
## - NYJ             1      2.24 17365 -12533.4
## - OAK             1      2.27 17365 -12533.3
## - PHI             1      2.30 17365 -12533.3
## - CAR             1      3.23 17366 -12531.8
## - CLE             1      3.57 17366 -12531.3
## - avg_rbry_pos    1      3.68 17366 -12531.1
## - JAC             1      4.84 17368 -12529.3
## - GB              1      7.05 17370 -12525.8
## - avg_rectd_plyr  1      7.23 17370 -12525.5
## - weight          1      9.63 17372 -12521.7
## - forty1          1     10.45 17373 -12520.4
## - NE              1     10.92 17374 -12519.6
## - height          1     19.39 17382 -12506.2
## - avg_rbry_plyr   1     30.20 17393 -12489.1
## - avg_fuml_plyr   1    238.82 17602 -12161.5
## - avg_qbtdp_plyr  1   2387.65 19750  -8995.7
## 
## Step:  AIC=-12536.91
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + 
##     TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - grass_1         1      0.00 17363 -12538.9
## - TB              1      0.01 17363 -12538.9
## - CHI             1      0.01 17363 -12538.9
## - MIA             1      0.07 17363 -12538.8
## - hot_weather     1      0.10 17363 -12538.7
## - SEA             1      0.11 17363 -12538.7
## - DEN             1      0.12 17363 -12538.7
## - DET             1      0.22 17363 -12538.6
## - STL             1      0.22 17363 -12538.6
## - NOR             1      0.39 17363 -12538.3
## - CIN             1      0.46 17363 -12538.2
## - DAL             1      0.47 17363 -12538.2
## - IND             1      0.55 17363 -12538.0
## - ATL             1      0.71 17363 -12537.8
## - PIT             1      0.72 17363 -12537.8
## - home_team_1     1      0.84 17364 -12537.6
## - cold_weather    1      0.97 17364 -12537.4
## - BAL             1      1.16 17364 -12537.1
## - SD              1      1.23 17364 -12537.0
## <none>                        17363 -12536.9
## - BUF             1      1.35 17364 -12536.8
## - vertical1       1      1.41 17364 -12536.7
## - HOU             1      1.85 17365 -12536.0
## - bad_weather_1   1      1.85 17365 -12536.0
## - WAS             1      1.98 17365 -12535.8
## - ARI             1      2.08 17365 -12535.6
## - MINN            1      2.35 17365 -12535.2
## - NYJ             1      2.37 17365 -12535.2
## - OAK             1      2.37 17365 -12535.2
## - PHI             1      2.41 17365 -12535.1
## - CAR             1      3.39 17366 -12533.5
## - avg_rbry_pos    1      3.69 17366 -12533.1
## - CLE             1      3.75 17366 -12533.0
## - JAC             1      5.07 17368 -12530.9
## - avg_rectd_plyr  1      7.23 17370 -12527.5
## - GB              1      7.66 17370 -12526.8
## - weight          1      9.63 17372 -12523.7
## - forty1          1     10.46 17373 -12522.4
## - NE              1     12.00 17375 -12519.9
## - height          1     19.40 17382 -12508.2
## - avg_rbry_plyr   1     30.22 17393 -12491.1
## - avg_fuml_plyr   1    238.82 17602 -12163.4
## - avg_qbtdp_plyr  1   2387.80 19751  -8997.5
## 
## Step:  AIC=-12538.9
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + 
##     TB + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - TB              1      0.01 17363 -12540.9
## - CHI             1      0.01 17363 -12540.9
## - MIA             1      0.07 17363 -12540.8
## - hot_weather     1      0.11 17363 -12540.7
## - SEA             1      0.11 17363 -12540.7
## - DEN             1      0.11 17363 -12540.7
## - STL             1      0.22 17363 -12540.5
## - DET             1      0.23 17363 -12540.5
## - NOR             1      0.40 17363 -12540.3
## - CIN             1      0.45 17363 -12540.2
## - DAL             1      0.49 17363 -12540.1
## - IND             1      0.54 17363 -12540.0
## - PIT             1      0.71 17363 -12539.8
## - ATL             1      0.72 17363 -12539.8
## - home_team_1     1      0.84 17364 -12539.6
## - cold_weather    1      0.98 17364 -12539.3
## - BAL             1      1.15 17364 -12539.1
## - SD              1      1.22 17364 -12539.0
## <none>                        17363 -12538.9
## - BUF             1      1.35 17364 -12538.8
## - vertical1       1      1.41 17364 -12538.7
## - HOU             1      1.85 17365 -12538.0
## - bad_weather_1   1      1.86 17365 -12538.0
## - WAS             1      1.99 17365 -12537.7
## - ARI             1      2.08 17365 -12537.6
## - MINN            1      2.36 17365 -12537.2
## - NYJ             1      2.38 17365 -12537.1
## - OAK             1      2.40 17365 -12537.1
## - PHI             1      2.42 17365 -12537.1
## - CAR             1      3.40 17366 -12535.5
## - avg_rbry_pos    1      3.69 17366 -12535.1
## - CLE             1      3.77 17366 -12534.9
## - JAC             1      5.09 17368 -12532.8
## - avg_rectd_plyr  1      7.24 17370 -12529.4
## - GB              1      7.65 17370 -12528.8
## - weight          1      9.63 17372 -12525.7
## - forty1          1     10.46 17373 -12524.3
## - NE              1     12.31 17375 -12521.4
## - height          1     19.40 17382 -12510.2
## - avg_rbry_plyr   1     30.22 17393 -12493.1
## - avg_fuml_plyr   1    238.82 17602 -12165.4
## - avg_qbtdp_plyr  1   2387.94 19751  -8999.3
## 
## Step:  AIC=-12540.88
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + 
##     MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - CHI             1      0.01 17363 -12542.9
## - MIA             1      0.06 17363 -12542.8
## - SEA             1      0.10 17363 -12542.7
## - hot_weather     1      0.11 17363 -12542.7
## - DEN             1      0.13 17363 -12542.7
## - STL             1      0.21 17363 -12542.5
## - DET             1      0.26 17363 -12542.5
## - CIN             1      0.44 17363 -12542.2
## - NOR             1      0.45 17363 -12542.2
## - IND             1      0.53 17363 -12542.0
## - DAL             1      0.54 17363 -12542.0
## - PIT             1      0.78 17364 -12541.6
## - ATL             1      0.79 17364 -12541.6
## - home_team_1     1      0.84 17364 -12541.6
## - cold_weather    1      0.97 17364 -12541.3
## - BAL             1      1.15 17364 -12541.1
## <none>                        17363 -12540.9
## - SD              1      1.32 17364 -12540.8
## - BUF             1      1.35 17364 -12540.7
## - vertical1       1      1.42 17364 -12540.6
## - bad_weather_1   1      1.86 17365 -12539.9
## - HOU             1      1.86 17365 -12539.9
## - WAS             1      2.01 17365 -12539.7
## - ARI             1      2.10 17365 -12539.6
## - MINN            1      2.38 17365 -12539.1
## - NYJ             1      2.41 17365 -12539.1
## - OAK             1      2.43 17365 -12539.0
## - PHI             1      2.44 17365 -12539.0
## - CAR             1      3.45 17366 -12537.4
## - avg_rbry_pos    1      3.69 17366 -12537.0
## - CLE             1      3.82 17367 -12536.8
## - JAC             1      5.18 17368 -12534.7
## - avg_rectd_plyr  1      7.24 17370 -12531.4
## - GB              1      8.08 17371 -12530.1
## - weight          1      9.62 17372 -12527.7
## - forty1          1     10.45 17373 -12526.3
## - NE              1     12.93 17376 -12522.4
## - height          1     19.40 17382 -12512.2
## - avg_rbry_plyr   1     30.23 17393 -12495.1
## - avg_fuml_plyr   1    238.88 17602 -12167.3
## - avg_qbtdp_plyr  1   2387.94 19751  -9001.2
## 
## Step:  AIC=-12542.86
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + 
##     CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MIA + MINN + 
##     NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS    AIC
## - MIA             1      0.06 17363 -12545
## - SEA             1      0.09 17363 -12545
## - hot_weather     1      0.11 17363 -12545
## - DEN             1      0.15 17363 -12545
## - STL             1      0.20 17363 -12544
## - DET             1      0.28 17363 -12544
## - CIN             1      0.43 17363 -12544
## - NOR             1      0.48 17363 -12544
## - IND             1      0.52 17363 -12544
## - DAL             1      0.58 17363 -12544
## - PIT             1      0.83 17364 -12544
## - ATL             1      0.84 17364 -12544
## - home_team_1     1      0.84 17364 -12544
## - cold_weather    1      0.98 17364 -12543
## - BAL             1      1.15 17364 -12543
## <none>                        17363 -12543
## - BUF             1      1.35 17364 -12543
## - SD              1      1.39 17364 -12543
## - vertical1       1      1.43 17364 -12543
## - bad_weather_1   1      1.87 17365 -12542
## - HOU             1      1.87 17365 -12542
## - WAS             1      2.01 17365 -12542
## - ARI             1      2.11 17365 -12542
## - MINN            1      2.39 17365 -12541
## - NYJ             1      2.42 17365 -12541
## - OAK             1      2.44 17365 -12541
## - PHI             1      2.45 17365 -12541
## - CAR             1      3.48 17366 -12539
## - avg_rbry_pos    1      3.69 17366 -12539
## - CLE             1      3.86 17367 -12539
## - JAC             1      5.23 17368 -12537
## - avg_rectd_plyr  1      7.24 17370 -12533
## - GB              1      8.41 17371 -12532
## - weight          1      9.65 17372 -12530
## - forty1          1     10.44 17373 -12528
## - NE              1     13.38 17376 -12524
## - height          1     19.48 17382 -12514
## - avg_rbry_plyr   1     30.23 17393 -12497
## - avg_fuml_plyr   1    239.10 17602 -12169
## - avg_qbtdp_plyr  1   2388.79 19752  -9002
## 
## Step:  AIC=-12544.78
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + 
##     CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + 
##     NOR + NYJ + OAK + PHI + PIT + SD + SEA + STL + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - SEA             1      0.07 17363 -12546.7
## - hot_weather     1      0.11 17363 -12546.6
## - STL             1      0.18 17363 -12546.5
## - DEN             1      0.18 17363 -12546.5
## - DET             1      0.32 17363 -12546.3
## - CIN             1      0.40 17363 -12546.1
## - IND             1      0.49 17363 -12546.0
## - NOR             1      0.54 17363 -12545.9
## - DAL             1      0.64 17363 -12545.8
## - home_team_1     1      0.84 17364 -12545.4
## - PIT             1      0.91 17364 -12545.3
## - ATL             1      0.92 17364 -12545.3
## - cold_weather    1      0.97 17364 -12545.2
## - BAL             1      1.10 17364 -12545.0
## <none>                        17363 -12544.8
## - BUF             1      1.30 17364 -12544.7
## - vertical1       1      1.44 17364 -12544.5
## - SD              1      1.49 17364 -12544.4
## - HOU             1      1.82 17365 -12543.9
## - bad_weather_1   1      1.86 17365 -12543.8
## - WAS             1      1.96 17365 -12543.7
## - ARI             1      2.05 17365 -12543.5
## - MINN            1      2.33 17365 -12543.1
## - NYJ             1      2.37 17365 -12543.0
## - OAK             1      2.39 17365 -12543.0
## - PHI             1      2.40 17365 -12543.0
## - CAR             1      3.43 17366 -12541.3
## - avg_rbry_pos    1      3.71 17367 -12540.9
## - CLE             1      3.81 17367 -12540.8
## - JAC             1      5.18 17368 -12538.6
## - avg_rectd_plyr  1      7.22 17370 -12535.4
## - GB              1      8.80 17372 -12532.9
## - weight          1      9.65 17372 -12531.5
## - forty1          1     10.43 17373 -12530.3
## - NE              1     13.92 17377 -12524.7
## - height          1     19.47 17382 -12516.0
## - avg_rbry_plyr   1     30.29 17393 -12498.9
## - avg_fuml_plyr   1    239.12 17602 -12170.8
## - avg_qbtdp_plyr  1   2388.80 19752  -9003.9
## 
## Step:  AIC=-12546.66
## ints ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + 
##     CLE + DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + 
##     NOR + NYJ + OAK + PHI + PIT + SD + STL + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - hot_weather     1      0.12 17363 -12548.5
## - STL             1      0.15 17363 -12548.4
## - DEN             1      0.22 17363 -12548.3
## - CIN             1      0.36 17363 -12548.1
## - DET             1      0.37 17363 -12548.1
## - IND             1      0.45 17363 -12548.0
## - NOR             1      0.61 17363 -12547.7
## - DAL             1      0.71 17364 -12547.5
## - home_team_1     1      0.84 17364 -12547.3
## - PIT             1      1.00 17364 -12547.1
## - cold_weather    1      1.00 17364 -12547.1
## - ATL             1      1.00 17364 -12547.1
## - BAL             1      1.04 17364 -12547.0
## - BUF             1      1.24 17364 -12546.7
## <none>                        17363 -12546.7
## - vertical1       1      1.43 17364 -12546.4
## - SD              1      1.60 17364 -12546.1
## - HOU             1      1.75 17365 -12545.9
## - bad_weather_1   1      1.86 17365 -12545.7
## - WAS             1      1.89 17365 -12545.7
## - ARI             1      1.99 17365 -12545.5
## - MINN            1      2.27 17365 -12545.1
## - NYJ             1      2.30 17365 -12545.0
## - OAK             1      2.32 17365 -12545.0
## - PHI             1      2.33 17365 -12545.0
## - CAR             1      3.36 17366 -12543.3
## - avg_rbry_pos    1      3.68 17367 -12542.8
## - CLE             1      3.73 17367 -12542.8
## - JAC             1      5.11 17368 -12540.6
## - avg_rectd_plyr  1      7.20 17370 -12537.3
## - GB              1      9.22 17372 -12534.1
## - weight          1      9.61 17372 -12533.5
## - forty1          1     10.41 17373 -12532.2
## - NE              1     14.49 17377 -12525.7
## - height          1     19.40 17382 -12518.0
## - avg_rbry_plyr   1     30.22 17393 -12500.9
## - avg_fuml_plyr   1    239.38 17602 -12172.3
## - avg_qbtdp_plyr  1   2400.61 19763  -8989.4
## 
## Step:  AIC=-12548.47
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL + 
##     DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + 
##     OAK + PHI + PIT + SD + STL + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - STL             1      0.16 17363 -12550.2
## - DEN             1      0.21 17363 -12550.1
## - CIN             1      0.36 17363 -12549.9
## - DET             1      0.37 17363 -12549.9
## - IND             1      0.44 17363 -12549.8
## - NOR             1      0.61 17364 -12549.5
## - DAL             1      0.72 17364 -12549.3
## - home_team_1     1      0.84 17364 -12549.1
## - cold_weather    1      0.98 17364 -12548.9
## - PIT             1      0.99 17364 -12548.9
## - ATL             1      1.01 17364 -12548.9
## - BAL             1      1.03 17364 -12548.8
## - BUF             1      1.26 17364 -12548.5
## <none>                        17363 -12548.5
## - vertical1       1      1.43 17364 -12548.2
## - SD              1      1.57 17365 -12548.0
## - HOU             1      1.74 17365 -12547.7
## - bad_weather_1   1      1.85 17365 -12547.5
## - WAS             1      1.88 17365 -12547.5
## - ARI             1      1.97 17365 -12547.3
## - MINN            1      2.26 17365 -12546.9
## - OAK             1      2.31 17365 -12546.8
## - PHI             1      2.32 17365 -12546.8
## - NYJ             1      2.32 17365 -12546.8
## - CAR             1      3.34 17366 -12545.2
## - avg_rbry_pos    1      3.67 17367 -12544.7
## - CLE             1      3.72 17367 -12544.6
## - JAC             1      5.09 17368 -12542.4
## - avg_rectd_plyr  1      7.20 17370 -12539.1
## - GB              1      9.24 17372 -12535.9
## - weight          1      9.63 17373 -12535.2
## - forty1          1     10.41 17373 -12534.0
## - NE              1     14.52 17378 -12527.5
## - height          1     19.42 17382 -12519.8
## - avg_rbry_plyr   1     30.19 17393 -12502.7
## - avg_fuml_plyr   1    239.37 17602 -12174.2
## - avg_qbtdp_plyr  1   2400.57 19764  -8991.3
## 
## Step:  AIC=-12550.23
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL + 
##     DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + 
##     OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - DEN             1      0.26 17363 -12551.8
## - CIN             1      0.31 17363 -12551.7
## - IND             1      0.38 17364 -12551.6
## - DET             1      0.44 17364 -12551.5
## - NOR             1      0.69 17364 -12551.1
## - DAL             1      0.82 17364 -12550.9
## - BAL             1      0.96 17364 -12550.7
## - cold_weather    1      0.96 17364 -12550.7
## - home_team_1     1      0.96 17364 -12550.7
## - PIT             1      1.09 17364 -12550.5
## - ATL             1      1.14 17364 -12550.4
## - BUF             1      1.18 17364 -12550.4
## <none>                        17363 -12550.2
## - vertical1       1      1.46 17365 -12549.9
## - HOU             1      1.63 17365 -12549.6
## - SD              1      1.69 17365 -12549.5
## - WAS             1      1.79 17365 -12549.4
## - bad_weather_1   1      1.82 17365 -12549.3
## - ARI             1      1.86 17365 -12549.3
## - MINN            1      2.15 17365 -12548.8
## - OAK             1      2.20 17365 -12548.7
## - PHI             1      2.22 17365 -12548.7
## - NYJ             1      2.22 17365 -12548.7
## - CAR             1      3.23 17366 -12547.1
## - CLE             1      3.60 17367 -12546.5
## - avg_rbry_pos    1      3.66 17367 -12546.4
## - JAC             1      4.96 17368 -12544.4
## - avg_rectd_plyr  1      7.29 17370 -12540.7
## - GB              1      9.59 17373 -12537.0
## - weight          1      9.70 17373 -12536.9
## - forty1          1     10.46 17374 -12535.7
## - NE              1     15.00 17378 -12528.5
## - height          1     19.46 17383 -12521.4
## - avg_rbry_plyr   1     30.27 17393 -12504.4
## - avg_fuml_plyr   1    239.56 17603 -12175.6
## - avg_qbtdp_plyr  1   2403.30 19766  -8989.3
## 
## Step:  AIC=-12551.82
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CIN + CLE + DAL + 
##     DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + OAK + 
##     PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - CIN             1      0.38 17364 -12553.2
## - DET             1      0.38 17364 -12553.2
## - IND             1      0.46 17364 -12553.1
## - NOR             1      0.61 17364 -12552.8
## - DAL             1      0.74 17364 -12552.7
## - cold_weather    1      0.93 17364 -12552.3
## - PIT             1      0.99 17364 -12552.3
## - home_team_1     1      1.00 17364 -12552.2
## - ATL             1      1.05 17364 -12552.2
## - BAL             1      1.08 17364 -12552.1
## <none>                        17363 -12551.8
## - BUF             1      1.31 17365 -12551.8
## - vertical1       1      1.52 17365 -12551.4
## - SD              1      1.58 17365 -12551.3
## - HOU             1      1.77 17365 -12551.0
## - bad_weather_1   1      1.85 17365 -12550.9
## - WAS             1      1.96 17365 -12550.7
## - ARI             1      2.01 17365 -12550.6
## - MINN            1      2.32 17366 -12550.1
## - OAK             1      2.38 17366 -12550.1
## - PHI             1      2.40 17366 -12550.0
## - NYJ             1      2.41 17366 -12550.0
## - CAR             1      3.45 17367 -12548.4
## - avg_rbry_pos    1      3.65 17367 -12548.0
## - CLE             1      3.84 17367 -12547.7
## - JAC             1      5.25 17369 -12545.5
## - avg_rectd_plyr  1      7.45 17371 -12542.0
## - GB              1      9.36 17373 -12539.0
## - weight          1      9.71 17373 -12538.5
## - forty1          1     10.39 17374 -12537.4
## - NE              1     14.75 17378 -12530.5
## - height          1     19.60 17383 -12522.8
## - avg_rbry_plyr   1     30.25 17394 -12506.0
## - avg_fuml_plyr   1    239.46 17603 -12177.4
## - avg_qbtdp_plyr  1   2403.64 19767  -8990.5
## 
## Step:  AIC=-12553.22
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + DET + 
##     GB + HOU + IND + JAC + MINN + NE + NOR + NYJ + OAK + PHI + 
##     PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - IND             1      0.39 17364 -12554.6
## - DET             1      0.45 17364 -12554.5
## - NOR             1      0.71 17364 -12554.1
## - DAL             1      0.84 17365 -12553.9
## - BAL             1      0.97 17365 -12553.7
## - cold_weather    1      0.98 17365 -12553.7
## - home_team_1     1      0.99 17365 -12553.7
## - PIT             1      1.11 17365 -12553.5
## - ATL             1      1.17 17365 -12553.4
## - BUF             1      1.19 17365 -12553.3
## <none>                        17364 -12553.2
## - vertical1       1      1.53 17365 -12552.8
## - HOU             1      1.65 17365 -12552.6
## - SD              1      1.73 17366 -12552.5
## - WAS             1      1.83 17366 -12552.3
## - bad_weather_1   1      1.87 17366 -12552.3
## - ARI             1      1.88 17366 -12552.2
## - MINN            1      2.18 17366 -12551.8
## - OAK             1      2.23 17366 -12551.7
## - PHI             1      2.25 17366 -12551.7
## - NYJ             1      2.26 17366 -12551.6
## - CAR             1      3.28 17367 -12550.0
## - avg_rbry_pos    1      3.66 17367 -12549.4
## - CLE             1      3.66 17367 -12549.4
## - JAC             1      5.05 17369 -12547.2
## - avg_rectd_plyr  1      7.46 17371 -12543.4
## - GB              1      9.81 17374 -12539.7
## - weight          1      9.88 17374 -12539.6
## - forty1          1     10.48 17374 -12538.6
## - NE              1     15.35 17379 -12530.9
## - height          1     19.76 17384 -12524.0
## - avg_rbry_plyr   1     30.14 17394 -12507.6
## - avg_fuml_plyr   1    239.26 17603 -12179.1
## - avg_qbtdp_plyr  1   2403.48 19767  -8992.2
## 
## Step:  AIC=-12554.6
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + DET + 
##     GB + HOU + JAC + MINN + NE + NOR + NYJ + OAK + PHI + PIT + 
##     SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - DET             1      0.54 17365 -12555.8
## - NOR             1      0.83 17365 -12555.3
## - BAL             1      0.88 17365 -12555.2
## - cold_weather    1      0.95 17365 -12555.1
## - DAL             1      0.97 17365 -12555.1
## - BUF             1      1.09 17365 -12554.9
## - home_team_1     1      1.16 17365 -12554.8
## - PIT             1      1.23 17365 -12554.7
## <none>                        17364 -12554.6
## - ATL             1      1.32 17365 -12554.5
## - vertical1       1      1.49 17366 -12554.3
## - HOU             1      1.51 17366 -12554.2
## - WAS             1      1.70 17366 -12553.9
## - ARI             1      1.73 17366 -12553.9
## - bad_weather_1   1      1.86 17366 -12553.7
## - SD              1      1.87 17366 -12553.6
## - MINN            1      2.04 17366 -12553.4
## - OAK             1      2.09 17366 -12553.3
## - PHI             1      2.12 17366 -12553.3
## - NYJ             1      2.12 17366 -12553.2
## - CAR             1      3.12 17367 -12551.7
## - CLE             1      3.50 17368 -12551.1
## - avg_rbry_pos    1      3.61 17368 -12550.9
## - JAC             1      4.85 17369 -12548.9
## - avg_rectd_plyr  1      7.39 17372 -12544.9
## - weight          1      9.74 17374 -12541.2
## - GB              1     10.23 17374 -12540.4
## - forty1          1     10.43 17375 -12540.1
## - NE              1     15.86 17380 -12531.5
## - height          1     19.54 17384 -12525.7
## - avg_rbry_plyr   1     30.13 17394 -12509.0
## - avg_fuml_plyr   1    239.12 17603 -12180.7
## - avg_qbtdp_plyr  1   2411.73 19776  -8982.2
## 
## Step:  AIC=-12555.75
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + GB + 
##     HOU + JAC + MINN + NE + NOR + NYJ + OAK + PHI + PIT + SD + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - NOR             1      0.71 17365 -12556.6
## - DAL             1      0.85 17366 -12556.4
## - BAL             1      0.99 17366 -12556.2
## - home_team_1     1      1.03 17366 -12556.1
## - cold_weather    1      1.05 17366 -12556.1
## - PIT             1      1.13 17366 -12556.0
## - ATL             1      1.18 17366 -12555.9
## - BUF             1      1.21 17366 -12555.8
## <none>                        17365 -12555.8
## - vertical1       1      1.57 17366 -12555.3
## - HOU             1      1.69 17366 -12555.1
## - SD              1      1.73 17366 -12555.0
## - WAS             1      1.85 17367 -12554.8
## - bad_weather_1   1      1.85 17367 -12554.8
## - ARI             1      1.92 17367 -12554.7
## - MINN            1      2.21 17367 -12554.3
## - OAK             1      2.27 17367 -12554.2
## - PHI             1      2.28 17367 -12554.1
## - NYJ             1      2.30 17367 -12554.1
## - CAR             1      3.33 17368 -12552.5
## - avg_rbry_pos    1      3.50 17368 -12552.2
## - CLE             1      3.70 17368 -12551.9
## - JAC             1      5.13 17370 -12549.6
## - avg_rectd_plyr  1      7.62 17372 -12545.7
## - weight          1      9.77 17374 -12542.3
## - GB              1      9.94 17375 -12542.0
## - forty1          1     10.33 17375 -12541.4
## - NE              1     15.52 17380 -12533.2
## - height          1     19.59 17384 -12526.8
## - avg_rbry_plyr   1     29.89 17395 -12510.5
## - avg_fuml_plyr   1    238.84 17604 -12182.3
## - avg_qbtdp_plyr  1   2411.25 19776  -8984.1
## 
## Step:  AIC=-12556.62
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + DAL + GB + 
##     HOU + JAC + MINN + NE + NYJ + OAK + PHI + PIT + SD + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - DAL             1      0.72 17366 -12557.5
## - home_team_1     1      0.92 17366 -12557.2
## - PIT             1      1.01 17366 -12557.0
## - ATL             1      1.02 17366 -12557.0
## - BAL             1      1.12 17367 -12556.8
## - cold_weather    1      1.13 17367 -12556.8
## <none>                        17365 -12556.6
## - BUF             1      1.35 17367 -12556.5
## - vertical1       1      1.57 17367 -12556.1
## - SD              1      1.58 17367 -12556.1
## - bad_weather_1   1      1.83 17367 -12555.7
## - HOU             1      1.89 17367 -12555.6
## - WAS             1      2.02 17367 -12555.4
## - ARI             1      2.13 17368 -12555.2
## - MINN            1      2.38 17368 -12554.8
## - PHI             1      2.46 17368 -12554.7
## - OAK             1      2.48 17368 -12554.7
## - NYJ             1      2.48 17368 -12554.7
## - avg_rbry_pos    1      3.33 17369 -12553.4
## - CAR             1      3.57 17369 -12553.0
## - CLE             1      3.91 17369 -12552.4
## - JAC             1      5.44 17371 -12550.0
## - avg_rectd_plyr  1      8.14 17374 -12545.7
## - GB              1      9.56 17375 -12543.5
## - weight          1      9.82 17375 -12543.1
## - forty1          1     10.42 17376 -12542.1
## - NE              1     15.07 17380 -12534.8
## - height          1     19.69 17385 -12527.5
## - avg_rbry_plyr   1     29.73 17395 -12511.6
## - avg_fuml_plyr   1    240.61 17606 -12180.4
## - avg_qbtdp_plyr  1   2420.52 19786  -8972.2
## 
## Step:  AIC=-12557.49
## ints ~ height + weight + cold_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CLE + GB + HOU + 
##     JAC + MINN + NE + NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - home_team_1     1      0.74 17367 -12558.3
## - ATL             1      0.89 17367 -12558.1
## - PIT             1      0.91 17367 -12558.0
## - cold_weather    1      1.19 17367 -12557.6
## - BAL             1      1.24 17367 -12557.5
## <none>                        17366 -12557.5
## - SD              1      1.45 17368 -12557.2
## - BUF             1      1.47 17368 -12557.2
## - vertical1       1      1.55 17368 -12557.0
## - bad_weather_1   1      1.82 17368 -12556.6
## - HOU             1      2.10 17368 -12556.2
## - WAS             1      2.17 17368 -12556.1
## - ARI             1      2.35 17368 -12555.8
## - MINN            1      2.56 17369 -12555.4
## - PHI             1      2.63 17369 -12555.3
## - NYJ             1      2.65 17369 -12555.3
## - OAK             1      2.67 17369 -12555.3
## - avg_rbry_pos    1      3.32 17369 -12554.2
## - CAR             1      3.78 17370 -12553.5
## - CLE             1      4.10 17370 -12553.0
## - JAC             1      5.70 17372 -12550.5
## - avg_rectd_plyr  1      8.34 17374 -12546.3
## - GB              1      9.26 17375 -12544.8
## - weight          1      9.76 17376 -12544.0
## - forty1          1     10.40 17377 -12543.0
## - NE              1     14.71 17381 -12536.2
## - height          1     19.64 17386 -12528.4
## - avg_rbry_plyr   1     29.91 17396 -12512.2
## - avg_fuml_plyr   1    240.97 17607 -12180.7
## - avg_qbtdp_plyr  1   2419.81 19786  -8974.2
## 
## Step:  AIC=-12558.32
## ints ~ height + weight + cold_weather + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + 
##     NE + NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - ATL             1      0.72 17368 -12559.2
## - PIT             1      0.98 17368 -12558.8
## - cold_weather    1      1.03 17368 -12558.7
## - BAL             1      1.17 17368 -12558.5
## <none>                        17367 -12558.3
## - BUF             1      1.42 17368 -12558.1
## - vertical1       1      1.55 17368 -12557.9
## - SD              1      1.55 17368 -12557.9
## - bad_weather_1   1      1.75 17369 -12557.6
## - WAS             1      2.05 17369 -12557.1
## - HOU             1      2.43 17369 -12556.5
## - PHI             1      2.53 17369 -12556.3
## - MINN            1      2.54 17369 -12556.3
## - OAK             1      2.56 17369 -12556.3
## - NYJ             1      2.56 17369 -12556.3
## - ARI             1      2.70 17370 -12556.0
## - avg_rbry_pos    1      3.34 17370 -12555.0
## - CAR             1      3.63 17371 -12554.6
## - CLE             1      3.96 17371 -12554.0
## - JAC             1      5.52 17372 -12551.6
## - avg_rectd_plyr  1      8.27 17375 -12547.2
## - GB              1      9.47 17376 -12545.3
## - weight          1      9.76 17377 -12544.9
## - forty1          1     10.43 17377 -12543.8
## - NE              1     15.05 17382 -12536.5
## - height          1     19.60 17386 -12529.3
## - avg_rbry_plyr   1     29.92 17397 -12513.0
## - avg_fuml_plyr   1    240.75 17608 -12181.9
## - avg_qbtdp_plyr  1   2421.14 19788  -8973.3
## 
## Step:  AIC=-12559.17
## ints ~ height + weight + cold_weather + forty1 + vertical1 + 
##     ARI + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE + 
##     NYJ + OAK + PHI + PIT + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - PIT             1      0.89 17368 -12559.8
## - cold_weather    1      1.17 17369 -12559.3
## <none>                        17368 -12559.2
## - BAL             1      1.28 17369 -12559.1
## - SD              1      1.42 17369 -12558.9
## - vertical1       1      1.45 17369 -12558.9
## - BUF             1      1.54 17369 -12558.7
## - bad_weather_1   1      1.77 17369 -12558.4
## - WAS             1      2.20 17370 -12557.7
## - HOU             1      2.62 17370 -12557.0
## - MINN            1      2.68 17370 -12556.9
## - PHI             1      2.70 17370 -12556.9
## - NYJ             1      2.71 17370 -12556.9
## - OAK             1      2.74 17370 -12556.8
## - ARI             1      2.88 17370 -12556.6
## - avg_rbry_pos    1      3.30 17371 -12556.0
## - CAR             1      3.84 17371 -12555.1
## - CLE             1      4.14 17372 -12554.6
## - JAC             1      5.79 17373 -12552.0
## - avg_rectd_plyr  1      8.55 17376 -12547.6
## - GB              1      9.17 17377 -12546.7
## - weight          1      9.79 17377 -12545.7
## - forty1          1     10.39 17378 -12544.7
## - NE              1     14.65 17382 -12538.0
## - height          1     19.88 17387 -12529.7
## - avg_rbry_plyr   1     29.95 17398 -12513.8
## - avg_fuml_plyr   1    242.63 17610 -12179.9
## - avg_qbtdp_plyr  1   2421.52 19789  -8973.8
## 
## Step:  AIC=-12559.76
## ints ~ height + weight + cold_weather + forty1 + vertical1 + 
##     ARI + BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE + 
##     NYJ + OAK + PHI + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## - cold_weather    1      0.99 17369 -12560.2
## <none>                        17368 -12559.8
## - SD              1      1.31 17370 -12559.7
## - BAL             1      1.43 17370 -12559.5
## - vertical1       1      1.44 17370 -12559.5
## - BUF             1      1.70 17370 -12559.1
## - bad_weather_1   1      1.73 17370 -12559.0
## - WAS             1      2.39 17371 -12558.0
## - HOU             1      2.79 17371 -12557.3
## - MINN            1      2.88 17371 -12557.2
## - PHI             1      2.90 17371 -12557.2
## - NYJ             1      2.93 17371 -12557.1
## - OAK             1      2.93 17371 -12557.1
## - ARI             1      3.08 17372 -12556.9
## - avg_rbry_pos    1      3.29 17372 -12556.6
## - CAR             1      4.08 17373 -12555.3
## - CLE             1      4.42 17373 -12554.8
## - JAC             1      6.04 17375 -12552.2
## - avg_rectd_plyr  1      8.64 17377 -12548.1
## - GB              1      8.81 17377 -12547.8
## - weight          1      9.79 17378 -12546.3
## - forty1          1     10.41 17379 -12545.3
## - NE              1     14.23 17383 -12539.3
## - height          1     19.87 17388 -12530.3
## - avg_rbry_plyr   1     29.96 17398 -12514.4
## - avg_fuml_plyr   1    242.17 17611 -12181.2
## - avg_qbtdp_plyr  1   2422.08 19791  -8973.8
## 
## Step:  AIC=-12560.2
## ints ~ height + weight + forty1 + vertical1 + ARI + BAL + BUF + 
##     CAR + CLE + GB + HOU + JAC + MINN + NE + NYJ + OAK + PHI + 
##     SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1
## 
##                  Df Sum of Sq   RSS      AIC
## <none>                        17369 -12560.2
## - SD              1      1.37 17371 -12560.0
## - vertical1       1      1.42 17371 -12559.9
## - BAL             1      1.57 17371 -12559.7
## - BUF             1      1.79 17371 -12559.4
## - bad_weather_1   1      2.16 17372 -12558.8
## - WAS             1      2.43 17372 -12558.4
## - HOU             1      2.62 17372 -12558.1
## - OAK             1      2.81 17372 -12557.7
## - MINN            1      2.92 17372 -12557.6
## - PHI             1      2.99 17372 -12557.5
## - ARI             1      2.99 17372 -12557.5
## - NYJ             1      3.03 17373 -12557.4
## - avg_rbry_pos    1      3.26 17373 -12557.0
## - CAR             1      4.05 17374 -12555.8
## - CLE             1      4.71 17374 -12554.7
## - JAC             1      5.84 17375 -12553.0
## - GB              1      8.39 17378 -12548.9
## - avg_rectd_plyr  1      8.75 17378 -12548.4
## - weight          1      9.74 17379 -12546.8
## - forty1          1     10.42 17380 -12545.7
## - NE              1     13.78 17383 -12540.4
## - height          1     19.82 17389 -12530.8
## - avg_rbry_plyr   1     29.92 17399 -12514.9
## - avg_fuml_plyr   1    242.03 17612 -12181.9
## - avg_qbtdp_plyr  1   2422.00 19791  -8974.5
summary(aic_ints)
## 
## Call:
## lm(formula = ints ~ height + weight + forty1 + vertical1 + ARI + 
##     BAL + BUF + CAR + CLE + GB + HOU + JAC + MINN + NE + NYJ + 
##     OAK + PHI + SD + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + bad_weather_1, data = trainTransformedints)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.8663 -0.0768 -0.0169  0.0407 10.8788 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    -3.988e-15  4.798e-03   0.000 1.000000    
## height          5.181e-02  9.255e-03   5.598 2.19e-08 ***
## weight         -3.410e-02  8.691e-03  -3.924 8.72e-05 ***
## forty1          3.353e-02  8.261e-03   4.058 4.95e-05 ***
## vertical1      -9.486e-03  6.327e-03  -1.499 0.133831    
## ARI             1.059e-02  4.872e-03   2.173 0.029800 *  
## BAL             7.678e-03  4.870e-03   1.577 0.114904    
## BUF             8.189e-03  4.873e-03   1.680 0.092882 .  
## CAR             1.233e-02  4.871e-03   2.532 0.011355 *  
## CLE             1.333e-02  4.886e-03   2.728 0.006382 ** 
## GB             -1.784e-02  4.899e-03  -3.642 0.000271 ***
## HOU             9.925e-03  4.878e-03   2.035 0.041902 *  
## JAC             1.480e-02  4.871e-03   3.039 0.002378 ** 
## MINN            1.049e-02  4.884e-03   2.147 0.031799 *  
## NE             -2.315e-02  4.961e-03  -4.667 3.07e-06 ***
## NYJ             1.067e-02  4.877e-03   2.187 0.028721 *  
## OAK             1.032e-02  4.895e-03   2.108 0.035016 *  
## PHI             1.057e-02  4.865e-03   2.172 0.029838 *  
## SD             -7.164e-03  4.868e-03  -1.472 0.141131    
## WAS             9.576e-03  4.886e-03   1.960 0.050008 .  
## avg_rectd_plyr -2.248e-02  6.046e-03  -3.719 0.000201 ***
## avg_rbry_plyr  -5.029e-02  7.312e-03  -6.878 6.21e-12 ***
## avg_rbry_pos    1.929e-02  8.504e-03   2.269 0.023286 *  
## avg_fuml_plyr   1.379e-01  7.050e-03  19.560  < 2e-16 ***
## avg_qbtdp_plyr  4.717e-01  7.624e-03  61.877  < 2e-16 ***
## bad_weather_1   8.888e-03  4.814e-03   1.846 0.064879 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7954 on 27458 degrees of freedom
## Multiple R-squared:  0.368,  Adjusted R-squared:  0.3674 
## F-statistic: 639.5 on 25 and 27458 DF,  p-value: < 2.2e-16

RandomForest:

forest_ints <- randomForest(intsregform, data = trainTransformedints, 
                          importance = TRUE, ntree = 500)
plot(forest_ints)

varImpPlot(forest_ints)

###Pass Attempts PreProcess:

set.seed(123)
splitpa <- sample.split(nfl_data$pa, SplitRatio = 0.7)
Trainpa <- subset(nfl_data, split == TRUE)
Testpa <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainpa, method = c("center", "scale"))
trainTransformedpa <- predict(preProcValues, Trainpa)
testTransformedpa <- predict(preProcValues, Testpa)

ggpairs:

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("pa",colnames(filtered_nfl_data_fields[46:51]))])

paregform <- formula(paste("pa ~ ", 
                             paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegQBpa <- lm(paregform, data = trainTransformedpa)
summary(linRegQBpa)

linRegQBpa2 <- update(linRegQBpa, ~.-hot_weather-home_team_1-ATL-BAL-CLE-DAL-DEN-DET-KC
                      -NOR-OAK-SEA-STL-WAS-avg_trg_team-avg_tdr_team-avg_rbra_team
                      -avg_rbry_plyr-avg_fuml_team-avg_qbints_team-avg_qbtdp_team
                      -grass_1-bad_weather_1 )
summary(linRegQBpa2)

linRegQBpa3 <- update(linRegQBpa2, ~.-vertical1-IND-PHI-PIT )
summary(linRegQBpa3)
## 
## Call:
## lm(formula = pa ~ height + weight + cold_weather + forty1 + ARI + 
##     BUF + CAR + CHI + CIN + GB + HOU + JAC + MIA + MINN + NE + 
##     NYG + NYJ + SD + TB + TEN + avg_rectd_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr, data = trainTransformedpa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1362 -0.0694 -0.0130  0.0356  4.5346 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.837e-15  2.313e-03   0.000 1.000000    
## height          5.816e-02  4.447e-03  13.079  < 2e-16 ***
## weight         -3.996e-02  4.171e-03  -9.580  < 2e-16 ***
## cold_weather    1.311e-04  2.351e-03   0.056 0.955524    
## forty1          3.773e-02  3.342e-03  11.290  < 2e-16 ***
## ARI             4.865e-03  2.351e-03   2.069 0.038516 *  
## BUF             3.949e-03  2.351e-03   1.680 0.093004 .  
## CAR             1.089e-04  2.349e-03   0.046 0.963033    
## CHI            -5.742e-03  2.352e-03  -2.441 0.014637 *  
## CIN            -3.356e-03  2.351e-03  -1.427 0.153498    
## GB             -1.861e-02  2.370e-03  -7.849 4.34e-15 ***
## HOU             9.521e-03  2.359e-03   4.037 5.44e-05 ***
## JAC             5.286e-03  2.348e-03   2.251 0.024380 *  
## MIA             1.332e-03  2.346e-03   0.568 0.570156    
## MINN            5.619e-03  2.355e-03   2.386 0.017022 *  
## NE             -1.624e-02  2.400e-03  -6.768 1.33e-11 ***
## NYG            -8.348e-03  2.353e-03  -3.548 0.000389 ***
## NYJ            -1.280e-03  2.350e-03  -0.544 0.586103    
## SD             -1.374e-02  2.353e-03  -5.841 5.25e-09 ***
## TB             -3.308e-03  2.350e-03  -1.408 0.159203    
## TEN            -2.767e-03  2.350e-03  -1.177 0.239039    
## avg_rectd_plyr -2.617e-02  2.904e-03  -9.010  < 2e-16 ***
## avg_rbry_pos   -4.051e-03  3.427e-03  -1.182 0.237211    
## avg_fuml_plyr   9.350e-02  3.199e-03  29.232  < 2e-16 ***
## avg_qbtdp_plyr  8.231e-01  3.643e-03 225.966  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3834 on 27459 degrees of freedom
## Multiple R-squared:  0.8531, Adjusted R-squared:  0.853 
## F-statistic:  6645 on 24 and 27459 DF,  p-value: < 2.2e-16

R2 is strong. This stat is the catalyst Ints, completions, TD’s. You have to attempt a pass in order to achieve a stat in any of these three categories.

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

PaPredicted <- predict(linRegQBpa3, newdata = testTransformedpa)

SSEpa <- sum((PaPredicted - testTransformedpa$pa)^2)
SSTpa <- sum((mean(c(testTransformedpa$pa,trainTransformedpa$pa))-testTransformedpa$pa)^2)
r2_pa <- 1 - SSEpa/SSTpa 
r2_pa
## [1] 0.8463253
rmse_pa <- sqrt(SSEpa/nrow(testTransformedpa))
rmse_pa
## [1] 0.3953472

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegQBpa3, which = c(1:3,5))

Very similar patterns to completions and yards. Some strong tails, so the data may not be normally distributed

Summary statistics:

confint(linRegQBpa3)
##                        2.5 %       97.5 %
## (Intercept)    -0.0045332724  0.004533272
## height          0.0494453252  0.066877140
## weight         -0.0481324757 -0.031781419
## cold_weather   -0.0044762676  0.004738466
## forty1          0.0311803541  0.044281015
## ARI             0.0002571222  0.009472993
## BUF            -0.0006588596  0.008557851
## CAR            -0.0044955296  0.004713284
## CHI            -0.0103515944 -0.001132075
## CIN            -0.0079650992  0.001252658
## GB             -0.0232514031 -0.013959285
## HOU             0.0048978676  0.014143962
## JAC             0.0006836263  0.009887708
## MIA            -0.0032657529  0.005929682
## MINN            0.0010038754  0.010234782
## NE             -0.0209465699 -0.011538645
## NYG            -0.0129596970 -0.003735903
## NYJ            -0.0058856085  0.003326504
## SD             -0.0183540586 -0.009130940
## TB             -0.0079143787  0.001297788
## TEN            -0.0073740699  0.001839441
## avg_rectd_plyr -0.0318627125 -0.020476836
## avg_rbry_pos   -0.0107684004  0.002666476
## avg_fuml_plyr   0.0872311724  0.099770017
## avg_qbtdp_plyr  0.8159438330  0.830222848
coef(summary(linRegQBpa3))
##                     Estimate  Std. Error       t value      Pr(>|t|)
## (Intercept)     2.837106e-15 0.002312835  1.226679e-12  1.000000e+00
## height          5.816123e-02 0.004446777  1.307941e+01  5.647188e-39
## weight         -3.995695e-02 0.004171081 -9.579519e+00  1.054241e-21
## cold_weather    1.310994e-04 0.002350637  5.577188e-02  9.555239e-01
## forty1          3.773068e-02 0.003341919  1.129012e+01  1.705538e-29
## ARI             4.865058e-03 0.002350927  2.069421e+00  3.851593e-02
## BUF             3.949496e-03 0.002351141  1.679821e+00  9.300359e-02
## CAR             1.088773e-04 0.002349127  4.634798e-02  9.630332e-01
## CHI            -5.741835e-03 0.002351858 -2.441404e+00  1.463656e-02
## CIN            -3.356220e-03 0.002351408 -1.427324e+00  1.534980e-01
## GB             -1.860534e-02 0.002370377 -7.849106e+00  4.342062e-15
## HOU             9.520915e-03 0.002358637  4.036617e+00  5.437438e-05
## JAC             5.285667e-03 0.002347920  2.251213e+00  2.437993e-02
## MIA             1.331964e-03 0.002345714  5.678290e-01  5.701557e-01
## MINN            5.619329e-03 0.002354763  2.386367e+00  1.702247e-02
## NE             -1.624261e-02 0.002399919 -6.767981e+00  1.332176e-11
## NYG            -8.347800e-03 0.002352948 -3.547804e+00  3.891041e-04
## NYJ            -1.279552e-03 0.002349968 -5.444977e-01  5.861035e-01
## SD             -1.374250e-02 0.002352776 -5.840972e+00  5.248161e-09
## TB             -3.308296e-03 0.002349982 -1.407796e+00  1.592028e-01
## TEN            -2.767315e-03 0.002350325 -1.177418e+00  2.390390e-01
## avg_rectd_plyr -2.616977e-02 0.002904486 -9.010123e+00  2.188484e-19
## avg_rbry_pos   -4.050962e-03 0.003427176 -1.182012e+00  2.372113e-01
## avg_fuml_plyr   9.350059e-02 0.003198603  2.923170e+01 5.249398e-185
## avg_qbtdp_plyr  8.230833e-01 0.003642512  2.259658e+02  0.000000e+00
anova(linRegQBpa3)
## Analysis of Variance Table
## 
## Response: pa
##                   Df Sum Sq Mean Sq    F value    Pr(>F)    
## height             1 1950.3  1950.3 13265.6253 < 2.2e-16 ***
## weight             1  461.7   461.7  3140.2425 < 2.2e-16 ***
## cold_weather       1    0.0     0.0     0.0000  0.995281    
## forty1             1 5580.4  5580.4 37957.4316 < 2.2e-16 ***
## ARI                1    1.3     1.3     8.6924  0.003198 ** 
## BUF                1    1.2     1.2     8.3499  0.003860 ** 
## CAR                1    9.9     9.9    67.1807 2.584e-16 ***
## CHI                1    0.3     0.3     2.2304  0.135331    
## CIN                1    3.0     3.0    20.5662 5.785e-06 ***
## GB                 1    0.2     0.2     1.2281  0.267782    
## HOU                1   12.2    12.2    83.0773 < 2.2e-16 ***
## JAC                1    0.8     0.8     5.1288  0.023540 *  
## MIA                1    0.4     0.4     2.5248  0.112079    
## MINN               1    0.8     0.8     5.7576  0.016424 *  
## NE                 1   43.7    43.7   297.5004 < 2.2e-16 ***
## NYG                1    8.5     8.5    57.8649 2.897e-14 ***
## NYJ                1    0.2     0.2     1.6841  0.194393    
## SD                 1   19.9    19.9   135.1058 < 2.2e-16 ***
## TB                 1    2.5     2.5    17.3398 3.135e-05 ***
## TEN                1    5.8     5.8    39.2418 3.800e-10 ***
## avg_rectd_plyr     1 1877.2  1877.2 12768.2759 < 2.2e-16 ***
## avg_rbry_pos       1  341.1   341.1  2320.1948 < 2.2e-16 ***
## avg_fuml_plyr      1 5617.8  5617.8 38212.0971 < 2.2e-16 ***
## avg_qbtdp_plyr     1 7506.8  7506.8 51060.5597 < 2.2e-16 ***
## Residuals      27459 4037.0     0.1                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_pa <- step(lm(paregform, data = trainTransformedpa), direction = "backward")
summary(aic_pa)
## 
## Call:
## lm(formula = pa ~ height + weight + home_team_1 + forty1 + vertical1 + 
##     ATL + CHI + CIN + CLE + DAL + DEN + DET + GB + HOU + IND + 
##     JAC + KC + MINN + NE + NOR + NYG + PHI + PIT + SD + STL + 
##     TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr, data = trainTransformedpa)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1041 -0.0666 -0.0159  0.0396  4.5214 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.726e-15  2.303e-03   0.000 1.000000    
## height          5.899e-02  4.440e-03  13.286  < 2e-16 ***
## weight         -3.672e-02  4.176e-03  -8.793  < 2e-16 ***
## home_team_1    -3.761e-03  2.440e-03  -1.541 0.123293    
## forty1          2.135e-02  3.960e-03   5.390 7.10e-08 ***
## vertical1      -1.701e-02  3.041e-03  -5.593 2.25e-08 ***
## ATL            -7.079e-03  2.431e-03  -2.912 0.003590 ** 
## CHI            -7.400e-03  2.388e-03  -3.098 0.001947 ** 
## CIN            -4.621e-03  2.392e-03  -1.932 0.053383 .  
## CLE             9.151e-03  2.396e-03   3.819 0.000134 ***
## DAL            -1.413e-02  2.418e-03  -5.845 5.13e-09 ***
## DEN            -5.993e-03  2.402e-03  -2.495 0.012589 *  
## DET            -3.663e-03  2.406e-03  -1.522 0.128004    
## GB             -2.066e-02  2.419e-03  -8.543  < 2e-16 ***
## HOU             8.256e-03  2.423e-03   3.407 0.000657 ***
## IND            -3.927e-03  2.410e-03  -1.630 0.103126    
## JAC             4.649e-03  2.391e-03   1.945 0.051820 .  
## KC              4.559e-03  2.392e-03   1.906 0.056649 .  
## MINN            5.376e-03  2.393e-03   2.246 0.024708 *  
## NE             -1.771e-02  2.456e-03  -7.208 5.81e-13 ***
## NOR            -1.407e-02  2.425e-03  -5.802 6.62e-09 ***
## NYG            -1.049e-02  2.397e-03  -4.377 1.21e-05 ***
## PHI             4.725e-03  2.389e-03   1.978 0.047963 *  
## PIT            -6.454e-03  2.394e-03  -2.696 0.007025 ** 
## SD             -1.592e-02  2.395e-03  -6.648 3.04e-11 ***
## STL             4.356e-03  2.412e-03   1.806 0.070888 .  
## TB             -5.189e-03  2.388e-03  -2.173 0.029785 *  
## TEN            -4.047e-03  2.392e-03  -1.692 0.090651 .  
## WAS             3.849e-03  2.401e-03   1.603 0.108852    
## avg_rectd_plyr -2.015e-02  2.938e-03  -6.859 7.06e-12 ***
## avg_rbry_plyr  -3.369e-02  3.511e-03  -9.595  < 2e-16 ***
## avg_rbry_pos    1.923e-02  4.086e-03   4.705 2.55e-06 ***
## avg_fuml_plyr   1.016e-01  3.393e-03  29.929  < 2e-16 ***
## avg_qbtdp_plyr  8.222e-01  3.686e-03 223.081  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3818 on 27450 degrees of freedom
## Multiple R-squared:  0.8544, Adjusted R-squared:  0.8542 
## F-statistic:  4880 on 33 and 27450 DF,  p-value: < 2.2e-16

RandomForest:

forest_pa <- randomForest(paregform, data = trainTransformedpa, 
                          importance = TRUE, ntree = 500)
plot(forest_pa)

varImpPlot(forest_pa)

##Rushing Stats

Rushing Yards

PreProcess:

set.seed(123)
splitry <- sample.split(nfl_data$ry, SplitRatio = 0.7)
Trainry <- subset(nfl_data, split == TRUE)
Testry <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainry, method = c("center", "scale"))
trainTransformedry <- predict(preProcValues, Trainry)
testTransformedry <- predict(preProcValues, Testry)

ggpairs:

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("ry",colnames(filtered_nfl_data_fields[46:51]))])

ryregform <- formula(paste("ry ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegRushYd <- lm(ryregform, data = trainTransformedry)
summary(linRegRushYd)

linRegRushYd2 <- update(linRegRushYd,~.-height-weight-hot_weather-home_team_1-is_WR-is_TE-forty1
                        -vertical1-ARI-ATL-BAL - BUF - CAR - CHI
                        -CIN - CLE - DAL - DEN - DET - GB - HOU - IND - JAC - KC - MIA 
                        -MINN - NE - NOR - NYG-NYJ - OAK - PHI - PIT -SD - SEA - STL 
                        -TB - TEN - WAS
                        -avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team-avg_rbry_pos
                        -avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team
                        -avg_qbints_plyr-bad_weather_1-grass_1)
summary(linRegRushYd2)
## 
## Call:
## lm(formula = ry ~ cold_weather + avg_rbry_plyr + avg_qbtdp_plyr, 
##     data = trainTransformedry)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4564 -0.0775 -0.0072  0.0077  7.1706 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.343e-14  3.913e-03   0.000 1.000000    
## cold_weather    1.409e-02  3.913e-03   3.602 0.000316 ***
## avg_rbry_plyr   7.609e-01  3.913e-03 194.477  < 2e-16 ***
## avg_qbtdp_plyr -1.208e-03  3.913e-03  -0.309 0.757571    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6486 on 27480 degrees of freedom
## Multiple R-squared:  0.5793, Adjusted R-squared:  0.5793 
## F-statistic: 1.261e+04 on 3 and 27480 DF,  p-value: < 2.2e-16

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

RushydsPredicted <- predict(linRegRushYd2, newdata = testTransformedry)

SSEruyd <- sum((RushydsPredicted - testTransformedry$ry)^2)
SSTruyd <- sum((mean(c(testTransformedry$ry,trainTransformedry$ry))-testTransformedry$ry)^2)
r2_ruyd <- 1 - SSEruyd/SSTruyd 
r2_ruyd
## [1] 0.5850066
rmse_ruyd <- sqrt(SSEruyd/nrow(testTransformedry))
rmse_ruyd
## [1] 0.6467476

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRushYd2, which = c(1:3,5))

Summary statistics:

confint(linRegRushYd2)
##                       2.5 %      97.5 %
## (Intercept)    -0.007668979 0.007668979
## cold_weather    0.006424438 0.021762752
## avg_rbry_plyr   0.753270275 0.768608611
## avg_qbtdp_plyr -0.008876890 0.006461374
coef(summary(linRegRushYd2))
##                     Estimate  Std. Error       t value     Pr(>|t|)
## (Intercept)     2.343374e-14 0.003912644  5.989234e-12 1.0000000000
## cold_weather    1.409359e-02 0.003912735  3.601981e+00 0.0003163587
## avg_rbry_plyr   7.609394e-01 0.003912740  1.944774e+02 0.0000000000
## avg_qbtdp_plyr -1.207758e-03 0.003912722 -3.086747e-01 0.7575713455
anova(linRegRushYd2)
## Analysis of Variance Table
## 
## Response: ry
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## cold_weather       1     7.5     7.5    17.7329  2.55e-05 ***
## avg_rbry_plyr      1 15913.4 15913.4 37821.7831 < 2.2e-16 ***
## avg_qbtdp_plyr     1     0.0     0.0     0.0953    0.7576    
## Residuals      27480 11562.1     0.4                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_ry <- step(lm(ryregform, data = trainTransformedry), direction = "backward")
summary(aic_ry)
## 
## Call:
## lm(formula = ry ~ cold_weather + home_team_1 + CAR + DEN + NOR + 
##     NYJ + PIT + WAS + avg_rbry_plyr + grass_1 + bad_weather_1, 
##     data = trainTransformedry)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4603 -0.0810 -0.0102  0.0209  7.1671 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    2.349e-14  3.911e-03   0.000  1.00000    
## cold_weather   1.260e-02  4.008e-03   3.144  0.00167 ** 
## home_team_1    8.292e-03  4.060e-03   2.043  0.04110 *  
## CAR           -6.237e-03  3.939e-03  -1.583  0.11338    
## DEN            7.038e-03  3.954e-03   1.780  0.07509 .  
## NOR           -7.140e-03  3.945e-03  -1.810  0.07033 .  
## NYJ           -6.635e-03  3.944e-03  -1.682  0.09254 .  
## PIT           -6.249e-03  3.959e-03  -1.578  0.11455    
## WAS            5.933e-03  3.940e-03   1.506  0.13209    
## avg_rbry_plyr  7.612e-01  3.914e-03 194.484  < 2e-16 ***
## grass_1       -8.020e-03  4.103e-03  -1.954  0.05066 .  
## bad_weather_1  6.278e-03  3.961e-03   1.585  0.11305    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6484 on 27472 degrees of freedom
## Multiple R-squared:  0.5797, Adjusted R-squared:  0.5795 
## F-statistic:  3444 on 11 and 27472 DF,  p-value: < 2.2e-16

RandomForest:

forest_ry <- randomForest(ryregform, data = trainTransformedry, 
                          importance = TRUE, ntree = 500)
plot(forest_ry)

varImpPlot(forest_ry)

###Rushing attempts PreProcess:

set.seed(123)
splitra <- sample.split(nfl_data$ra, SplitRatio = 0.7)
Trainra <- subset(nfl_data, split == TRUE)
Testra <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainra, method = c("center", "scale"))
trainTransformedra <- predict(preProcValues, Trainra)
testTransformedra <- predict(preProcValues, Testra)

ggpairs:

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("ra",colnames(filtered_nfl_data_fields[46:51]))])

raregform <- formula(paste("ra ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegRushAtt <- lm(raregform, data = trainTransformedra)
summary(linRegRushAtt)

linRegRushAtt2 <- update(linRegRushYd,~.-height-weight-hot_weather-home_team_1-age-is_TE
                         -vertical1-ARI-ATL-BAL - BUF - CAR - CHI
                         -CIN - CLE - DAL - GB - IND - JAC - KC - MIA 
                         -MINN - NE - NOR -NYJ - OAK - PHI - PIT -SD - SEA 
                         -TB - TEN - WAS
                         -avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team
                         -avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team-avg_qbints_plyr
                         -bad_weather_1-grass_1)

summary(linRegRushAtt2)

linRegRushAtt3 <- update(linRegRushYd,~.-is_WR-forty1-is_TE-DET-HOU-NYG-STL-avg_rbry_pos)
summary(linRegRushAtt3)
## 
## Call:
## lm(formula = ry ~ height + weight + cold_weather + hot_weather + 
##     home_team_1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + GB + IND + JAC + KC + MIA + MINN + 
##     NE + NOR + NYJ + OAK + PHI + PIT + SD + SEA + TB + TEN + 
##     WAS + avg_trg_team + avg_rectd_plyr + avg_tdr_team + avg_rbra_team + 
##     avg_rbry_plyr + avg_fuml_plyr + avg_fuml_team + avg_qbints_team + 
##     avg_qbtdp_plyr + avg_qbtdp_team + grass_1 + bad_weather_1, 
##     data = trainTransformedry)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4896 -0.0836 -0.0125  0.0242  7.1660 
## 
## Coefficients: (2 not defined because of singularities)
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      2.344e-14  3.913e-03   0.000 1.000000    
## height          -4.250e-03  6.636e-03  -0.641 0.521852    
## weight           2.594e-03  5.973e-03   0.434 0.664046    
## cold_weather     1.399e-02  4.119e-03   3.396 0.000685 ***
## hot_weather     -1.398e-03  3.948e-03  -0.354 0.723326    
## home_team_1      1.004e-02  4.257e-03   2.357 0.018410 *  
## vertical1       -1.282e-03  4.435e-03  -0.289 0.772558    
## ARI              1.483e-03  1.001e-02   0.148 0.882240    
## ATL              1.719e-03  1.975e-02   0.087 0.930629    
## BAL             -4.354e-03  1.319e-02  -0.330 0.741352    
## BUF             -3.768e-03  9.869e-03  -0.382 0.702625    
## CAR             -5.674e-03  7.359e-03  -0.771 0.440718    
## CHI             -8.120e-03  9.801e-03  -0.828 0.407412    
## CIN             -4.125e-03  7.453e-03  -0.553 0.579998    
## CLE             -1.419e-03  5.366e-03  -0.265 0.791380    
## DAL             -1.644e-03  5.768e-03  -0.285 0.775585    
## DEN              1.147e-04  2.093e-02   0.005 0.995629    
## GB              -6.551e-03  8.796e-03  -0.745 0.456438    
## IND             -9.439e-03  4.924e-03  -1.917 0.055243 .  
## JAC             -8.556e-03  8.212e-03  -1.042 0.297482    
## KC              -6.296e-04  5.422e-03  -0.116 0.907560    
## MIA             -1.145e-03  5.612e-03  -0.204 0.838315    
## MINN             1.818e-03  1.202e-02   0.151 0.879798    
## NE               3.165e-03  3.194e-02   0.099 0.921068    
## NOR             -4.459e-03  2.444e-02  -0.182 0.855199    
## NYJ             -1.296e-02  1.418e-02  -0.914 0.360618    
## OAK              1.173e-03  1.366e-02   0.086 0.931562    
## PHI             -4.167e-03  1.563e-02  -0.267 0.789842    
## PIT             -9.834e-03  5.091e-03  -1.932 0.053398 .  
## SD              -1.064e-02  1.536e-02  -0.693 0.488426    
## SEA             -3.444e-03  1.131e-02  -0.305 0.760741    
## TB              -5.047e-03  1.117e-02  -0.452 0.651391    
## TEN              1.429e-03  6.043e-03   0.236 0.813091    
## WAS              6.074e-03  6.196e-03   0.980 0.326982    
## avg_trg_team     7.333e-03  8.678e-03   0.845 0.398129    
## avg_rectd_plyr   1.483e-03  4.720e-03   0.314 0.753296    
## avg_tdr_team    -2.054e-02  3.991e-02  -0.515 0.606745    
## avg_rbra_team    1.626e-02  4.065e-02   0.400 0.689110    
## avg_rbry_plyr    7.604e-01  4.902e-03 155.133  < 2e-16 ***
## avg_fuml_plyr    7.528e-04  5.779e-03   0.130 0.896352    
## avg_fuml_team    4.848e-03  4.544e-02   0.107 0.915024    
## avg_qbints_team         NA         NA      NA       NA    
## avg_qbtdp_plyr  -3.021e-04  6.019e-03  -0.050 0.959977    
## avg_qbtdp_team          NA         NA      NA       NA    
## grass_1         -7.836e-03  4.502e-03  -1.741 0.081769 .  
## bad_weather_1    6.398e-03  3.980e-03   1.607 0.107989    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6487 on 27440 degrees of freedom
## Multiple R-squared:  0.5799, Adjusted R-squared:  0.5792 
## F-statistic: 880.8 on 43 and 27440 DF,  p-value: < 2.2e-16

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

RushattPredicted <- predict(linRegRushAtt, newdata = testTransformedra)
## Warning in predict.lm(linRegRushAtt, newdata = testTransformedra):
## prediction from a rank-deficient fit may be misleading
SSEruatt <- sum((RushattPredicted - testTransformedra$ra)^2)
SSTruatt <- sum((mean(c(testTransformedra$ra,trainTransformedra$ra))-testTransformedra$ra)^2)
r2_ruatt <- 1 - SSEruatt/SSTruatt 
r2_ruatt
## [1] 0.6981411
rmse_ruatt <- sqrt(SSEruatt/nrow(testTransformedra))
rmse_ruatt
## [1] 0.5583721

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegRushAtt3, which = c(1:3,2))

Summary statistics:

confint(linRegRushAtt3)
##                        2.5 %       97.5 %
## (Intercept)     -0.007669245 0.0076692451
## height          -0.017256818 0.0087562940
## weight          -0.009113117 0.0143017475
## cold_weather     0.005913936 0.0220595475
## hot_weather     -0.009137059 0.0063413757
## home_team_1      0.001691644 0.0183806622
## vertical1       -0.009974415 0.0074107595
## ARI             -0.018134356 0.0210994601
## ATL             -0.036992629 0.0404313835
## BAL             -0.030210343 0.0215021045
## BUF             -0.023112326 0.0155764292
## CAR             -0.020098113 0.0087504440
## CHI             -0.027330666 0.0110907770
## CIN             -0.018733519 0.0104842673
## CLE             -0.011937414 0.0090984867
## DAL             -0.012949042 0.0096605859
## DEN             -0.040914291 0.0411436294
## GB              -0.023792568 0.0106904874
## IND             -0.019089129 0.0002117549
## JAC             -0.024651979 0.0075401749
## KC              -0.011257522 0.0099982754
## MIA             -0.012145205 0.0098548783
## MINN            -0.021742134 0.0253776222
## NE              -0.059432674 0.0657618248
## NOR             -0.052353695 0.0434352291
## NYJ             -0.040754676 0.0148292770
## OAK             -0.025602975 0.0279494003
## PHI             -0.034808261 0.0264752052
## PIT             -0.019811999 0.0001439443
## SD              -0.040745213 0.0194631912
## SEA             -0.025611367 0.0187235469
## TB              -0.026939122 0.0168457355
## TEN             -0.010416503 0.0132743474
## WAS             -0.006071133 0.0182184220
## avg_trg_team    -0.009676353 0.0243414921
## avg_rectd_plyr  -0.007767648 0.0107345278
## avg_tdr_team    -0.098773936 0.0576858279
## avg_rbra_team   -0.063405957 0.0959277180
## avg_rbry_plyr    0.750805188 0.7700203321
## avg_fuml_plyr   -0.010573740 0.0120793526
## avg_fuml_team   -0.084210860 0.0939076059
## avg_qbints_team           NA           NA
## avg_qbtdp_plyr  -0.012100583 0.0114964322
## avg_qbtdp_team            NA           NA
## grass_1         -0.016659292 0.0009880277
## bad_weather_1   -0.001403838 0.0141992619
coef(summary(linRegRushAtt3))
##                     Estimate  Std. Error       t value     Pr(>|t|)
## (Intercept)     2.344479e-14 0.003912779  5.991850e-12 1.0000000000
## height         -4.250262e-03 0.006635827 -6.405022e-01 0.5218515088
## weight          2.594315e-03 0.005973026  4.343385e-01 0.6640460685
## cold_weather    1.398674e-02 0.004118672  3.395935e+00 0.0006849163
## hot_weather    -1.397841e-03 0.003948479 -3.540203e-01 0.7233264149
## home_team_1     1.003615e-02 0.004257293  2.357403e+00 0.0184102659
## vertical1      -1.281828e-03 0.004434879 -2.890333e-01 0.7725580582
## ARI             1.482552e-03 0.010008369  1.481312e-01 0.8822402932
## ATL             1.719377e-03 0.019750515  8.705481e-02 0.9306285825
## BAL            -4.354119e-03 0.013191611 -3.300673e-01 0.7413516436
## BUF            -3.767948e-03 0.009869326 -3.817837e-01 0.7026247322
## CAR            -5.673834e-03 0.007359136 -7.709919e-01 0.4407183832
## CHI            -8.119944e-03 0.009801136 -8.284697e-01 0.4074117522
## CIN            -4.124626e-03 0.007453325 -5.533941e-01 0.5799981114
## CLE            -1.419464e-03 0.005366163 -2.645211e-01 0.7913803617
## DAL            -1.644228e-03 0.005767614 -2.850794e-01 0.7755854311
## DEN             1.146694e-04 0.020932604  5.478027e-03 0.9956292289
## GB             -6.551040e-03 0.008796471 -7.447350e-01 0.4564383012
## IND            -9.438687e-03 0.004923568 -1.917042e+00 0.0552429659
## JAC            -8.555902e-03 0.008212073 -1.041869e+00 0.2974817178
## KC             -6.296235e-04 0.005422258 -1.161183e-01 0.9075596145
## MIA            -1.145164e-03 0.005612122 -2.040518e-01 0.8383145395
## MINN            1.817744e-03 0.012020037  1.512262e-01 0.8797984050
## NE              3.164575e-03 0.031936550  9.908945e-02 0.9210679708
## NOR            -4.459233e-03 0.024435321 -1.824913e-01 0.8551985469
## NYJ            -1.296270e-02 0.014179215 -9.142043e-01 0.3606175306
## OAK             1.173213e-03 0.013660969  8.588063e-02 0.9315619327
## PHI            -4.166528e-03 0.015633135 -2.665190e-01 0.7898415213
## PIT            -9.834027e-03 0.005090671 -1.931774e+00 0.0533976464
## SD             -1.064101e-02 0.015358891 -6.928241e-01 0.4884257835
## SEA            -3.443910e-03 0.011309636 -3.045111e-01 0.7607408121
## TB             -5.046693e-03 0.011169319 -4.518354e-01 0.6513911628
## TEN             1.428922e-03 0.006043429  2.364423e-01 0.8130912061
## WAS             6.073644e-03 0.006196156  9.802279e-01 0.3269822992
## avg_trg_team    7.332570e-03 0.008677798  8.449804e-01 0.3981291504
## avg_rectd_plyr  1.483440e-03 0.004719821  3.143000e-01 0.7532955779
## avg_tdr_team   -2.054405e-02 0.039912178 -5.147315e-01 0.6067448256
## avg_rbra_team   1.626088e-02 0.040645300  4.000679e-01 0.6891096097
## avg_rbry_plyr   7.604128e-01 0.004901696  1.551326e+02 0.0000000000
## avg_fuml_plyr   7.528063e-04 0.005778701  1.302726e-01 0.8963517388
## avg_fuml_team   4.848373e-03 0.045437215  1.067049e-01 0.9150238822
## avg_qbtdp_plyr -3.020756e-04 0.006019492 -5.018291e-02 0.9599769975
## grass_1        -7.835632e-03 0.004501752 -1.740574e+00 0.0817694614
## bad_weather_1   6.397712e-03 0.003980280  1.607352e+00 0.1079886565
anova(linRegRushAtt3)
## Analysis of Variance Table
## 
## Response: ry
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## height             1  1821.4  1821.4  4328.6020 < 2.2e-16 ***
## weight             1  1093.9  1093.9  2599.6901 < 2.2e-16 ***
## cold_weather       1     4.0     4.0     9.5199 0.0020345 ** 
## hot_weather        1     0.3     0.3     0.6398 0.4238057    
## home_team_1        1     3.1     3.1     7.4732 0.0062663 ** 
## vertical1          1    21.9    21.9    52.1045 5.399e-13 ***
## ARI                1     1.0     1.0     2.3860 0.1224362    
## ATL                1     5.3     5.3    12.6629 0.0003736 ***
## BAL                1     5.7     5.7    13.5172 0.0002368 ***
## BUF                1     7.3     7.3    17.2903 3.218e-05 ***
## CAR                1     0.1     0.1     0.2082 0.6481658    
## CHI                1     9.0     9.0    21.4681 3.614e-06 ***
## CIN                1     3.6     3.6     8.4879 0.0035780 ** 
## CLE                1     1.9     1.9     4.4084 0.0357708 *  
## DAL                1     3.7     3.7     8.8898 0.0028702 ** 
## DEN                1     0.1     0.1     0.1739 0.6766667    
## GB                 1     0.7     0.7     1.7186 0.1898847    
## IND                1     4.6     4.6    10.8507 0.0009888 ***
## JAC                1     2.7     2.7     6.4831 0.0108958 *  
## KC                 1     1.5     1.5     3.5452 0.0597286 .  
## MIA                1     0.6     0.6     1.4867 0.2227429    
## MINN               1    17.0    17.0    40.3101 2.201e-10 ***
## NE                 1     3.0     3.0     7.2446 0.0071156 ** 
## NOR                1     6.0     6.0    14.3043 0.0001558 ***
## NYJ                1     2.5     2.5     5.9654 0.0145955 *  
## OAK                1     1.6     1.6     3.7620 0.0524391 .  
## PHI                1     3.0     3.0     7.0162 0.0080823 ** 
## PIT                1     0.0     0.0     0.0095 0.9222679    
## SD                 1     0.0     0.0     0.1015 0.7500854    
## SEA                1     0.2     0.2     0.4016 0.5262656    
## TB                 1     0.1     0.1     0.2326 0.6296331    
## TEN                1     0.0     0.0     0.0004 0.9842026    
## WAS                1     5.7     5.7    13.6255 0.0002236 ***
## avg_trg_team       1     0.6     0.6     1.4230 0.2329197    
## avg_rectd_plyr     1   590.5   590.5  1403.2578 < 2.2e-16 ***
## avg_tdr_team       1     8.7     8.7    20.5736 5.762e-06 ***
## avg_rbra_team      1     0.6     0.6     1.4897 0.2222670    
## avg_rbry_plyr      1 12302.7 12302.7 29238.2353 < 2.2e-16 ***
## avg_fuml_plyr      1     0.0     0.0     0.0148 0.9032697    
## avg_fuml_team      1     0.0     0.0     0.0524 0.8188814    
## avg_qbtdp_plyr     1     0.0     0.0     0.0037 0.9517883    
## grass_1            1     1.2     1.2     2.8654 0.0905158 .  
## bad_weather_1      1     1.1     1.1     2.5836 0.1079887    
## Residuals      27440 11546.1     0.4                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC

aic_ra <- step(lm(raregform, data = trainTransformedra), direction = "backward")
summary(aic_ra)
## 
## Call:
## lm(formula = ra ~ cold_weather + forty1 + ARI + ATL + BAL + CIN + 
##     CLE + DEN + DET + HOU + MINN + NE + NYG + PHI + SD + STL + 
##     TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos, data = trainTransformedra)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8018 -0.0844 -0.0078  0.0440  5.3582 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    8.086e-15  3.325e-03   0.000 1.000000    
## cold_weather   1.199e-02  3.394e-03   3.533 0.000411 ***
## forty1         2.444e-02  3.407e-03   7.172 7.57e-13 ***
## ARI            7.117e-03  3.383e-03   2.104 0.035402 *  
## ATL            5.889e-03  3.395e-03   1.735 0.082818 .  
## BAL            7.136e-03  3.387e-03   2.107 0.035154 *  
## CIN            1.006e-02  3.382e-03   2.974 0.002943 ** 
## CLE            9.494e-03  3.385e-03   2.804 0.005044 ** 
## DEN            1.569e-02  3.384e-03   4.637 3.55e-06 ***
## DET            1.027e-02  3.388e-03   3.033 0.002425 ** 
## HOU            1.093e-02  3.391e-03   3.223 0.001271 ** 
## MINN          -6.040e-03  3.378e-03  -1.788 0.073763 .  
## NE             7.150e-03  3.410e-03   2.097 0.036024 *  
## NYG            1.257e-02  3.387e-03   3.712 0.000206 ***
## PHI           -5.036e-03  3.377e-03  -1.491 0.135947    
## SD             7.614e-03  3.384e-03   2.250 0.024476 *  
## STL            1.089e-02  3.382e-03   3.219 0.001286 ** 
## TB             4.852e-03  3.384e-03   1.434 0.151720    
## TEN            5.862e-03  3.380e-03   1.734 0.082869 .  
## WAS            7.285e-03  3.383e-03   2.153 0.031309 *  
## avg_rbry_plyr  7.967e-01  4.743e-03 167.980  < 2e-16 ***
## avg_rbry_pos   5.738e-02  4.696e-03  12.218  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5513 on 27462 degrees of freedom
## Multiple R-squared:  0.6963, Adjusted R-squared:  0.6961 
## F-statistic:  2999 on 21 and 27462 DF,  p-value: < 2.2e-16

RandomForest:

forest_ra <- randomForest(raregform, data = trainTransformedra, 
                          importance = TRUE, ntree = 500)
plot(forest_ra)

varImpPlot(forest_ra)

###TDR PreProcess:

set.seed(123)
splitdr <- sample.split(nfl_data$tdr, SplitRatio = 0.7)
Traintdr <- subset(nfl_data, split == TRUE)
Testtdr <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Traintdr, method = c("center", "scale"))
trainTransformedtdr <- predict(preProcValues, Traintdr)
testTransformedtdr <- predict(preProcValues, Testtdr)

ggpairs:

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("tdr",colnames(filtered_nfl_data_fields[46:51]))])

regression:

tdrregform <- formula(paste("ra ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegtdr <- lm(tdrregform, data = trainTransformedtdr)
summary(linRegRushAtt)

linRegtdr2 <- update(linRegRushYd,~.-height-weight-hot_weather
                     -home_team_1-age-is_TE-vertical1-ARI-ATL-BAL - BUF - CAR - CHI
                         -CIN - CLE - DAL - GB - JAC - KC - MIA 
                         -MINN - NE - NOR -NYJ - OAK - PHI - PIT -SD - SEA 
                         -TB - TEN - WAS
                         -avg_rectd_plyr-avg_trg_team-avg_tdr_team-avg_rbra_team
                         -avg_fuml_team-avg_fuml_plyr-avg_qbints_team-avg_qbtdp_team-avg_qbints_plyr
                         -bad_weather_1-grass_1)

summary(linRegtdr2)

linRegtdr3 <- update(linRegtdr2,~.-is_WR-is_TE-forty1-DET-HOU-NYG-STL-avg_rbry_pos)
summary(linRegtdr3)
## 
## Call:
## lm(formula = ry ~ cold_weather + DEN + IND + avg_rbry_plyr + 
##     avg_qbtdp_plyr, data = trainTransformedry)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4560 -0.0781 -0.0085  0.0082  7.1710 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     2.343e-14  3.912e-03   0.000 1.000000    
## cold_weather    1.375e-02  3.916e-03   3.512 0.000446 ***
## DEN             7.084e-03  3.917e-03   1.808 0.070553 .  
## IND            -3.724e-03  3.916e-03  -0.951 0.341701    
## avg_rbry_plyr   7.610e-01  3.913e-03 194.482  < 2e-16 ***
## avg_qbtdp_plyr -1.210e-03  3.913e-03  -0.309 0.757208    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6486 on 27478 degrees of freedom
## Multiple R-squared:  0.5794, Adjusted R-squared:  0.5793 
## F-statistic:  7569 on 5 and 27478 DF,  p-value: < 2.2e-16

Testing:

RushTdrPredicted <- predict(linRegtdr3, newdata = testTransformedtdr)

SSErutdr <- sum((RushTdrPredicted - testTransformedtdr$tdr)^2)
SSTrutdr <- sum((mean(nfl_data$tdr)-testTransformedtdr$tdr)^2)
r2_rutdr <- 1 - SSErutdr/SSTrutdr 
r2_rutdr
## [1] 0.08372787
rmse_rutdr <- sqrt(SSErutdr/nrow(testTransformedtdr))
rmse_rutdr
## [1] 0.9645189

Plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegtdr3, which = c(1:3,2))

Summary Statistics:

confint(linRegtdr3)
##                        2.5 %      97.5 %
## (Intercept)    -0.0076686590 0.007668659
## cold_weather    0.0060761053 0.021427471
## DEN            -0.0005940149 0.014762520
## IND            -0.0113994186 0.003952273
## avg_rbry_plyr   0.7532922619 0.768630653
## avg_qbtdp_plyr -0.0088797123 0.006460201
coef(summary(linRegtdr3))
##                     Estimate  Std. Error       t value     Pr(>|t|)
## (Intercept)     2.342949e-14 0.003912481  5.988396e-12 1.0000000000
## cold_weather    1.375179e-02 0.003916064  3.511635e+00 0.0004460732
## DEN             7.084252e-03 0.003917383  1.808415e+00 0.0705529133
## IND            -3.723573e-03 0.003916147 -9.508255e-01 0.3417013100
## avg_rbry_plyr   7.609615e-01 0.003912754  1.944823e+02 0.0000000000
## avg_qbtdp_plyr -1.209756e-03 0.003913143 -3.091520e-01 0.7572082541
anova(linRegtdr3)
## Analysis of Variance Table
## 
## Response: ry
##                   Df  Sum Sq Mean Sq    F value    Pr(>F)    
## cold_weather       1     7.5     7.5    17.7343 2.548e-05 ***
## DEN                1     0.1     0.1     0.3041   0.58133    
## IND                1     2.2     2.2     5.2589   0.02184 *  
## avg_rbry_plyr      1 15912.8 15912.8 37823.6618 < 2.2e-16 ***
## avg_qbtdp_plyr     1     0.0     0.0     0.0956   0.75721    
## Residuals      27478 11560.3     0.4                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_tdr <- step(lm(tdrregform, data = trainTransformedtdr), direction = "backward")
summary(aic_tdr)
## 
## Call:
## lm(formula = ra ~ cold_weather + forty1 + ARI + ATL + BAL + CIN + 
##     CLE + DEN + DET + HOU + MINN + NE + NYG + PHI + SD + STL + 
##     TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos, data = trainTransformedtdr)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8018 -0.0844 -0.0078  0.0440  5.3582 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    8.086e-15  3.325e-03   0.000 1.000000    
## cold_weather   1.199e-02  3.394e-03   3.533 0.000411 ***
## forty1         2.444e-02  3.407e-03   7.172 7.57e-13 ***
## ARI            7.117e-03  3.383e-03   2.104 0.035402 *  
## ATL            5.889e-03  3.395e-03   1.735 0.082818 .  
## BAL            7.136e-03  3.387e-03   2.107 0.035154 *  
## CIN            1.006e-02  3.382e-03   2.974 0.002943 ** 
## CLE            9.494e-03  3.385e-03   2.804 0.005044 ** 
## DEN            1.569e-02  3.384e-03   4.637 3.55e-06 ***
## DET            1.027e-02  3.388e-03   3.033 0.002425 ** 
## HOU            1.093e-02  3.391e-03   3.223 0.001271 ** 
## MINN          -6.040e-03  3.378e-03  -1.788 0.073763 .  
## NE             7.150e-03  3.410e-03   2.097 0.036024 *  
## NYG            1.257e-02  3.387e-03   3.712 0.000206 ***
## PHI           -5.036e-03  3.377e-03  -1.491 0.135947    
## SD             7.614e-03  3.384e-03   2.250 0.024476 *  
## STL            1.089e-02  3.382e-03   3.219 0.001286 ** 
## TB             4.852e-03  3.384e-03   1.434 0.151720    
## TEN            5.862e-03  3.380e-03   1.734 0.082869 .  
## WAS            7.285e-03  3.383e-03   2.153 0.031309 *  
## avg_rbry_plyr  7.967e-01  4.743e-03 167.980  < 2e-16 ***
## avg_rbry_pos   5.738e-02  4.696e-03  12.218  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5513 on 27462 degrees of freedom
## Multiple R-squared:  0.6963, Adjusted R-squared:  0.6961 
## F-statistic:  2999 on 21 and 27462 DF,  p-value: < 2.2e-16

RandomForest:

forest_tdr <- randomForest(tdrregform, data = trainTransformedtdr, 
                          importance = TRUE, ntree = 500)
plot(forest_tdr)

varImpPlot(forest_tdr)

Fumbles

PreProcess:

set.seed(123)
splitfuml <- sample.split(nfl_data$fuml, SplitRatio = 0.7)
Trainfuml <- subset(nfl_data, split == TRUE)
Testfuml <- subset(nfl_data, split == FALSE)
preProcValues <- preProcess(Trainfuml, method = c("center", "scale"))
trainTransformedfuml <- predict(preProcValues, Trainfuml)
testTransformedfuml <- predict(preProcValues, Testfuml)

ggpairs:

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[1:9]))])

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[10:18]))])

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[19:27]))])

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[28:36]))])

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[37:45]))])

ggpairs(nfl_data[,c("fuml",colnames(filtered_nfl_data_fields[46:51]))])

fumlregform <- formula(paste("fuml ~ ", 
                           paste(colnames(filtered_nfl_data_fields), collapse="+")))

linRegFumble <- lm(fumlregform, data = trainTransformedfuml)
summary(linRegFumble)

linRegFumble2 <- lm(fuml ~ avg_fuml_plyr, data = trainTransformedfuml)
summary(linRegFumble2)
## 
## Call:
## lm(formula = fuml ~ avg_fuml_plyr, data = trainTransformedfuml)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2292 -0.2679 -0.1108  0.0000 16.0207 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1.991e-16  5.748e-03    0.00        1    
## avg_fuml_plyr 3.033e-01  5.748e-03   52.76   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9529 on 27482 degrees of freedom
## Multiple R-squared:  0.09197,    Adjusted R-squared:  0.09194 
## F-statistic:  2784 on 1 and 27482 DF,  p-value: < 2.2e-16

Definitely does not seem to be a good predictor

Testing the data, we see that the training set and the test set are similar. The model seems to hold up through testing

FumblePredicted <- predict(linRegFumble2, newdata = testTransformedfuml)

SSEfum <- sum((FumblePredicted - testTransformedfuml$fuml)^2)
SSTfum <- sum((mean(nfl_data$fuml)-testTransformedfuml$fuml)^2)
r2_fum <- 1 - SSEfum/SSTfum 
r2_fum
## [1] 0.08604778
rmse_fum <- sqrt(SSEfum/nrow(testTransformedfuml))
rmse_fum
## [1] 0.9529244

Regression plots:

par(mar = c(4, 4, 2, 2), mfrow = c(2, 2))
plot(linRegFumble2, which = c(1:3,5))

The plots don’t seem to confirm that this is a good model for the data

Summary statistics:

confint(linRegFumble2)
##                     2.5 %     97.5 %
## (Intercept)   -0.01126638 0.01126638
## avg_fuml_plyr  0.29200585 0.31453901
coef(summary(linRegFumble2))
##                   Estimate  Std. Error      t value Pr(>|t|)
## (Intercept)   1.990785e-16 0.005748004 3.463437e-14        1
## avg_fuml_plyr 3.032724e-01 0.005748108 5.276039e+01        0
anova(linRegFumble2)
## Analysis of Variance Table
## 
## Response: fuml
##                  Df  Sum Sq Mean Sq F value    Pr(>F)    
## avg_fuml_plyr     1  2527.7 2527.73  2783.7 < 2.2e-16 ***
## Residuals     27482 24955.3    0.91                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

AIC:

aic_fuml <- step(lm(fumlregform, data = trainTransformedfuml), direction = "backward")
## Start:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     avg_qbtdp_team + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbints_team + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_fuml_team + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbra_team + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_tdr_team + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_trg_team + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
## 
## Step:  AIC=-2583.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MIA + MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + 
##     SEA + STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - MIA             1      0.00 24935 -2585.0
## - weight          1      0.00 24935 -2585.0
## - OAK             1      0.01 24935 -2585.0
## - KC              1      0.01 24935 -2585.0
## - SEA             1      0.01 24935 -2585.0
## - STL             1      0.01 24935 -2585.0
## - SD              1      0.01 24935 -2585.0
## - hot_weather     1      0.02 24935 -2585.0
## - HOU             1      0.03 24935 -2585.0
## - DEN             1      0.04 24935 -2585.0
## - PHI             1      0.04 24935 -2585.0
## - NYG             1      0.05 24935 -2585.0
## - avg_rectd_plyr  1      0.08 24935 -2585.0
## - bad_weather_1   1      0.08 24935 -2584.9
## - JAC             1      0.09 24935 -2584.9
## - GB              1      0.13 24935 -2584.9
## - TB              1      0.14 24935 -2584.9
## - DET             1      0.14 24935 -2584.9
## - CLE             1      0.14 24935 -2584.9
## - MINN            1      0.17 24935 -2584.8
## - height          1      0.18 24935 -2584.8
## - forty1          1      0.18 24935 -2584.8
## - ATL             1      0.21 24935 -2584.8
## - WAS             1      0.24 24935 -2584.8
## - avg_rbry_plyr   1      0.25 24935 -2584.8
## - avg_rbry_pos    1      0.26 24935 -2584.8
## - home_team_1     1      0.27 24935 -2584.8
## - DAL             1      0.29 24935 -2584.7
## - BUF             1      0.29 24935 -2584.7
## - vertical1       1      0.34 24935 -2584.7
## - CAR             1      0.39 24935 -2584.6
## - PIT             1      0.39 24935 -2584.6
## - ARI             1      0.46 24936 -2584.5
## - BAL             1      0.57 24936 -2584.4
## - avg_qbtdp_plyr  1      0.79 24936 -2584.2
## - TEN             1      0.92 24936 -2584.0
## - CIN             1      1.07 24936 -2583.9
## - NE              1      1.41 24936 -2583.5
## - NOR             1      1.49 24937 -2583.4
## - grass_1         1      1.55 24937 -2583.3
## - IND             1      1.60 24937 -2583.3
## <none>                        24935 -2583.0
## - NYJ             1      2.17 24937 -2582.6
## - CHI             1      2.45 24938 -2582.3
## - cold_weather    1      3.26 24938 -2581.4
## - avg_fuml_plyr   1   1200.94 26136 -1292.2
## 
## Step:  AIC=-2585.04
## fuml ~ height + weight + cold_weather + hot_weather + home_team_1 + 
##     forty1 + vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + 
##     CIN + CLE + DAL + DEN + DET + GB + HOU + IND + JAC + KC + 
##     MINN + NE + NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + 
##     STL + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - weight          1      0.00 24935 -2587.0
## - OAK             1      0.01 24935 -2587.0
## - KC              1      0.01 24935 -2587.0
## - STL             1      0.01 24935 -2587.0
## - SD              1      0.01 24935 -2587.0
## - hot_weather     1      0.02 24935 -2587.0
## - SEA             1      0.02 24935 -2587.0
## - HOU             1      0.03 24935 -2587.0
## - DEN             1      0.04 24935 -2587.0
## - PHI             1      0.06 24935 -2587.0
## - NYG             1      0.07 24935 -2587.0
## - avg_rectd_plyr  1      0.08 24935 -2587.0
## - bad_weather_1   1      0.08 24935 -2586.9
## - JAC             1      0.10 24935 -2586.9
## - GB              1      0.16 24935 -2586.9
## - DET             1      0.17 24935 -2586.8
## - TB              1      0.17 24935 -2586.8
## - CLE             1      0.17 24935 -2586.8
## - height          1      0.18 24935 -2586.8
## - forty1          1      0.18 24935 -2586.8
## - MINN            1      0.21 24935 -2586.8
## - avg_rbry_plyr   1      0.25 24935 -2586.8
## - ATL             1      0.25 24935 -2586.8
## - avg_rbry_pos    1      0.26 24935 -2586.8
## - home_team_1     1      0.27 24935 -2586.8
## - WAS             1      0.29 24935 -2586.7
## - vertical1       1      0.33 24935 -2586.7
## - DAL             1      0.35 24935 -2586.7
## - BUF             1      0.35 24935 -2586.7
## - CAR             1      0.48 24936 -2586.5
## - PIT             1      0.49 24936 -2586.5
## - ARI             1      0.57 24936 -2586.4
## - BAL             1      0.71 24936 -2586.2
## - avg_qbtdp_plyr  1      0.79 24936 -2586.2
## - TEN             1      1.16 24936 -2585.8
## - CIN             1      1.35 24936 -2585.6
## - grass_1         1      1.55 24937 -2585.3
## - NE              1      1.79 24937 -2585.1
## <none>                        24935 -2585.0
## - NOR             1      1.91 24937 -2584.9
## - IND             1      2.03 24937 -2584.8
## - NYJ             1      2.77 24938 -2584.0
## - CHI             1      3.11 24938 -2583.6
## - cold_weather    1      3.26 24938 -2583.4
## - avg_fuml_plyr   1   1201.25 26136 -1293.9
## 
## Step:  AIC=-2587.03
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + GB + HOU + IND + JAC + KC + MINN + NE + 
##     NOR + NYG + NYJ + OAK + PHI + PIT + SD + SEA + STL + TB + 
##     TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - OAK             1      0.01 24935 -2589.0
## - KC              1      0.01 24935 -2589.0
## - STL             1      0.01 24935 -2589.0
## - SD              1      0.01 24935 -2589.0
## - hot_weather     1      0.02 24935 -2589.0
## - SEA             1      0.02 24935 -2589.0
## - HOU             1      0.03 24935 -2589.0
## - DEN             1      0.04 24935 -2589.0
## - PHI             1      0.06 24935 -2589.0
## - NYG             1      0.07 24935 -2589.0
## - avg_rectd_plyr  1      0.07 24935 -2588.9
## - bad_weather_1   1      0.08 24935 -2588.9
## - JAC             1      0.10 24935 -2588.9
## - GB              1      0.16 24935 -2588.9
## - DET             1      0.17 24935 -2588.8
## - TB              1      0.17 24935 -2588.8
## - CLE             1      0.17 24935 -2588.8
## - forty1          1      0.19 24935 -2588.8
## - MINN            1      0.21 24935 -2588.8
## - avg_rbry_plyr   1      0.25 24935 -2588.8
## - ATL             1      0.25 24935 -2588.8
## - home_team_1     1      0.27 24935 -2588.7
## - WAS             1      0.29 24935 -2588.7
## - vertical1       1      0.33 24935 -2588.7
## - avg_rbry_pos    1      0.33 24935 -2588.7
## - DAL             1      0.35 24935 -2588.6
## - BUF             1      0.36 24935 -2588.6
## - height          1      0.43 24936 -2588.6
## - CAR             1      0.48 24936 -2588.5
## - PIT             1      0.49 24936 -2588.5
## - ARI             1      0.57 24936 -2588.4
## - BAL             1      0.71 24936 -2588.2
## - avg_qbtdp_plyr  1      0.88 24936 -2588.1
## - TEN             1      1.17 24936 -2587.8
## - CIN             1      1.36 24936 -2587.5
## - grass_1         1      1.55 24937 -2587.3
## - NE              1      1.80 24937 -2587.1
## <none>                        24935 -2587.0
## - NOR             1      1.91 24937 -2586.9
## - IND             1      2.03 24937 -2586.8
## - NYJ             1      2.77 24938 -2586.0
## - CHI             1      3.12 24938 -2585.6
## - cold_weather    1      3.26 24938 -2585.4
## - avg_fuml_plyr   1   1211.40 26146 -1285.2
## 
## Step:  AIC=-2589.03
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + GB + HOU + IND + JAC + KC + MINN + NE + 
##     NOR + NYG + NYJ + PHI + PIT + SD + SEA + STL + TB + TEN + 
##     WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - KC              1      0.00 24935 -2591.0
## - STL             1      0.01 24935 -2591.0
## - SD              1      0.01 24935 -2591.0
## - hot_weather     1      0.02 24935 -2591.0
## - HOU             1      0.03 24935 -2591.0
## - DEN             1      0.03 24935 -2591.0
## - SEA             1      0.03 24935 -2591.0
## - avg_rectd_plyr  1      0.07 24935 -2590.9
## - bad_weather_1   1      0.08 24935 -2590.9
## - PHI             1      0.09 24935 -2590.9
## - NYG             1      0.09 24935 -2590.9
## - JAC             1      0.09 24935 -2590.9
## - GB              1      0.16 24935 -2590.8
## - DET             1      0.17 24935 -2590.8
## - TB              1      0.17 24935 -2590.8
## - CLE             1      0.17 24935 -2590.8
## - forty1          1      0.19 24935 -2590.8
## - MINN            1      0.21 24935 -2590.8
## - avg_rbry_plyr   1      0.24 24935 -2590.8
## - ATL             1      0.25 24935 -2590.8
## - home_team_1     1      0.26 24935 -2590.7
## - WAS             1      0.29 24935 -2590.7
## - avg_rbry_pos    1      0.33 24935 -2590.7
## - vertical1       1      0.33 24935 -2590.7
## - DAL             1      0.36 24935 -2590.6
## - BUF             1      0.37 24935 -2590.6
## - height          1      0.42 24936 -2590.6
## - CAR             1      0.50 24936 -2590.5
## - PIT             1      0.51 24936 -2590.5
## - ARI             1      0.60 24936 -2590.4
## - BAL             1      0.76 24936 -2590.2
## - avg_qbtdp_plyr  1      0.88 24936 -2590.1
## - TEN             1      1.26 24936 -2589.6
## - CIN             1      1.45 24937 -2589.4
## - grass_1         1      1.56 24937 -2589.3
## <none>                        24935 -2589.0
## - NE              1      1.93 24937 -2588.9
## - NOR             1      2.08 24937 -2588.7
## - IND             1      2.19 24937 -2588.6
## - NYJ             1      3.01 24938 -2587.7
## - cold_weather    1      3.26 24938 -2587.4
## - CHI             1      3.40 24938 -2587.3
## - avg_fuml_plyr   1   1211.79 26147 -1286.8
## 
## Step:  AIC=-2591.02
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + 
##     NYG + NYJ + PHI + PIT + SD + SEA + STL + TB + TEN + WAS + 
##     avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - STL             1      0.01 24935 -2593.0
## - SD              1      0.01 24935 -2593.0
## - hot_weather     1      0.02 24935 -2593.0
## - HOU             1      0.03 24935 -2593.0
## - DEN             1      0.03 24935 -2593.0
## - SEA             1      0.04 24935 -2593.0
## - avg_rectd_plyr  1      0.07 24935 -2592.9
## - bad_weather_1   1      0.08 24935 -2592.9
## - JAC             1      0.09 24935 -2592.9
## - PHI             1      0.10 24935 -2592.9
## - NYG             1      0.11 24935 -2592.9
## - GB              1      0.16 24935 -2592.8
## - DET             1      0.17 24935 -2592.8
## - TB              1      0.17 24935 -2592.8
## - CLE             1      0.17 24935 -2592.8
## - forty1          1      0.19 24935 -2592.8
## - MINN            1      0.21 24935 -2592.8
## - avg_rbry_plyr   1      0.24 24935 -2592.8
## - ATL             1      0.25 24935 -2592.7
## - home_team_1     1      0.26 24935 -2592.7
## - WAS             1      0.30 24935 -2592.7
## - vertical1       1      0.33 24935 -2592.7
## - avg_rbry_pos    1      0.33 24935 -2592.7
## - DAL             1      0.37 24935 -2592.6
## - BUF             1      0.37 24935 -2592.6
## - height          1      0.43 24936 -2592.6
## - CAR             1      0.52 24936 -2592.5
## - PIT             1      0.53 24936 -2592.4
## - ARI             1      0.62 24936 -2592.3
## - BAL             1      0.78 24936 -2592.2
## - avg_qbtdp_plyr  1      0.88 24936 -2592.1
## - TEN             1      1.31 24936 -2591.6
## - CIN             1      1.51 24937 -2591.4
## - grass_1         1      1.57 24937 -2591.3
## <none>                        24935 -2591.0
## - NE              1      2.02 24937 -2590.8
## - NOR             1      2.17 24937 -2590.6
## - IND             1      2.28 24937 -2590.5
## - NYJ             1      3.15 24938 -2589.6
## - cold_weather    1      3.26 24938 -2589.4
## - CHI             1      3.57 24939 -2589.1
## - avg_fuml_plyr   1   1211.80 26147 -1288.8
## 
## Step:  AIC=-2593.02
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + 
##     NYG + NYJ + PHI + PIT + SD + SEA + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - SD              1      0.01 24935 -2595.0
## - hot_weather     1      0.02 24935 -2595.0
## - HOU             1      0.02 24935 -2595.0
## - DEN             1      0.03 24935 -2595.0
## - SEA             1      0.05 24935 -2595.0
## - avg_rectd_plyr  1      0.07 24935 -2594.9
## - JAC             1      0.08 24935 -2594.9
## - bad_weather_1   1      0.09 24935 -2594.9
## - PHI             1      0.12 24935 -2594.9
## - NYG             1      0.12 24935 -2594.9
## - GB              1      0.15 24935 -2594.8
## - DET             1      0.16 24935 -2594.8
## - TB              1      0.16 24935 -2594.8
## - CLE             1      0.16 24935 -2594.8
## - forty1          1      0.19 24935 -2594.8
## - MINN            1      0.20 24935 -2594.8
## - avg_rbry_plyr   1      0.24 24935 -2594.8
## - ATL             1      0.25 24935 -2594.7
## - home_team_1     1      0.26 24935 -2594.7
## - WAS             1      0.29 24935 -2594.7
## - vertical1       1      0.33 24935 -2594.7
## - avg_rbry_pos    1      0.33 24935 -2594.7
## - DAL             1      0.36 24935 -2594.6
## - BUF             1      0.37 24935 -2594.6
## - height          1      0.43 24936 -2594.5
## - CAR             1      0.51 24936 -2594.4
## - PIT             1      0.52 24936 -2594.4
## - ARI             1      0.62 24936 -2594.3
## - BAL             1      0.78 24936 -2594.2
## - avg_qbtdp_plyr  1      0.88 24936 -2594.1
## - TEN             1      1.32 24936 -2593.6
## - CIN             1      1.53 24937 -2593.3
## - grass_1         1      1.57 24937 -2593.3
## <none>                        24935 -2593.0
## - NE              1      2.06 24937 -2592.8
## - NOR             1      2.23 24937 -2592.6
## - IND             1      2.34 24937 -2592.4
## - NYJ             1      3.23 24938 -2591.4
## - cold_weather    1      3.26 24938 -2591.4
## - CHI             1      3.63 24939 -2591.0
## - avg_fuml_plyr   1   1212.23 26147 -1290.3
## 
## Step:  AIC=-2595.01
## fuml ~ height + cold_weather + hot_weather + home_team_1 + forty1 + 
##     vertical1 + ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + 
##     DAL + DEN + DET + GB + HOU + IND + JAC + MINN + NE + NOR + 
##     NYG + NYJ + PHI + PIT + SEA + TB + TEN + WAS + avg_rectd_plyr + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - hot_weather     1      0.02 24935 -2597.0
## - HOU             1      0.02 24935 -2597.0
## - DEN             1      0.02 24935 -2597.0
## - SEA             1      0.06 24935 -2596.9
## - avg_rectd_plyr  1      0.07 24935 -2596.9
## - JAC             1      0.08 24935 -2596.9
## - bad_weather_1   1      0.09 24935 -2596.9
## - PHI             1      0.13 24935 -2596.9
## - NYG             1      0.14 24935 -2596.9
## - GB              1      0.15 24935 -2596.8
## - DET             1      0.15 24935 -2596.8
## - TB              1      0.16 24935 -2596.8
## - CLE             1      0.16 24935 -2596.8
## - forty1          1      0.19 24935 -2596.8
## - MINN            1      0.20 24935 -2596.8
## - ATL             1      0.24 24935 -2596.7
## - avg_rbry_plyr   1      0.24 24935 -2596.7
## - home_team_1     1      0.26 24935 -2596.7
## - WAS             1      0.28 24935 -2596.7
## - vertical1       1      0.33 24935 -2596.7
## - avg_rbry_pos    1      0.33 24935 -2596.7
## - DAL             1      0.36 24935 -2596.6
## - BUF             1      0.36 24935 -2596.6
## - height          1      0.43 24936 -2596.5
## - CAR             1      0.51 24936 -2596.4
## - PIT             1      0.52 24936 -2596.4
## - ARI             1      0.61 24936 -2596.3
## - BAL             1      0.78 24936 -2596.2
## - avg_qbtdp_plyr  1      0.88 24936 -2596.0
## - TEN             1      1.32 24936 -2595.6
## - CIN             1      1.54 24937 -2595.3
## - grass_1         1      1.58 24937 -2595.3
## <none>                        24935 -2595.0
## - NE              1      2.08 24937 -2594.7
## - NOR             1      2.25 24937 -2594.5
## - IND             1      2.36 24937 -2594.4
## - cold_weather    1      3.27 24938 -2593.4
## - NYJ             1      3.27 24938 -2593.4
## - CHI             1      3.67 24939 -2593.0
## - avg_fuml_plyr   1   1212.24 26147 -1292.3
## 
## Step:  AIC=-2596.99
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + HOU + IND + JAC + MINN + NE + NOR + NYG + NYJ + 
##     PHI + PIT + SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - HOU             1      0.02 24935 -2599.0
## - DEN             1      0.02 24935 -2599.0
## - SEA             1      0.06 24935 -2598.9
## - avg_rectd_plyr  1      0.07 24935 -2598.9
## - JAC             1      0.08 24935 -2598.9
## - bad_weather_1   1      0.09 24935 -2598.9
## - PHI             1      0.13 24935 -2598.8
## - NYG             1      0.14 24935 -2598.8
## - GB              1      0.15 24935 -2598.8
## - TB              1      0.15 24935 -2598.8
## - DET             1      0.16 24935 -2598.8
## - CLE             1      0.16 24935 -2598.8
## - forty1          1      0.19 24935 -2598.8
## - MINN            1      0.20 24935 -2598.8
## - avg_rbry_plyr   1      0.24 24935 -2598.7
## - ATL             1      0.24 24935 -2598.7
## - home_team_1     1      0.26 24935 -2598.7
## - WAS             1      0.29 24935 -2598.7
## - vertical1       1      0.33 24935 -2598.6
## - avg_rbry_pos    1      0.33 24935 -2598.6
## - BUF             1      0.36 24935 -2598.6
## - DAL             1      0.36 24935 -2598.6
## - height          1      0.43 24936 -2598.5
## - CAR             1      0.51 24936 -2598.4
## - PIT             1      0.52 24936 -2598.4
## - ARI             1      0.61 24936 -2598.3
## - BAL             1      0.78 24936 -2598.1
## - avg_qbtdp_plyr  1      0.88 24936 -2598.0
## - TEN             1      1.33 24936 -2597.5
## - CIN             1      1.54 24937 -2597.3
## - grass_1         1      1.57 24937 -2597.3
## <none>                        24935 -2597.0
## - NE              1      2.08 24937 -2596.7
## - NOR             1      2.25 24937 -2596.5
## - IND             1      2.36 24937 -2596.4
## - cold_weather    1      3.25 24938 -2595.4
## - NYJ             1      3.26 24938 -2595.4
## - CHI             1      3.68 24939 -2594.9
## - avg_fuml_plyr   1   1212.29 26147 -1294.2
## 
## Step:  AIC=-2598.97
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DEN + 
##     DET + GB + IND + JAC + MINN + NE + NOR + NYG + NYJ + PHI + 
##     PIT + SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + 
##     bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - DEN             1      0.02 24935 -2600.9
## - JAC             1      0.07 24935 -2600.9
## - avg_rectd_plyr  1      0.07 24935 -2600.9
## - SEA             1      0.08 24935 -2600.9
## - bad_weather_1   1      0.08 24935 -2600.9
## - GB              1      0.14 24935 -2600.8
## - DET             1      0.14 24935 -2600.8
## - PHI             1      0.14 24935 -2600.8
## - TB              1      0.14 24935 -2600.8
## - CLE             1      0.15 24935 -2600.8
## - NYG             1      0.16 24935 -2600.8
## - MINN            1      0.18 24935 -2600.8
## - forty1          1      0.20 24935 -2600.8
## - ATL             1      0.23 24935 -2600.7
## - avg_rbry_plyr   1      0.25 24935 -2600.7
## - home_team_1     1      0.25 24935 -2600.7
## - WAS             1      0.27 24935 -2600.7
## - avg_rbry_pos    1      0.33 24935 -2600.6
## - vertical1       1      0.34 24935 -2600.6
## - BUF             1      0.34 24935 -2600.6
## - DAL             1      0.34 24935 -2600.6
## - height          1      0.43 24936 -2600.5
## - CAR             1      0.49 24936 -2600.4
## - PIT             1      0.50 24936 -2600.4
## - ARI             1      0.60 24936 -2600.3
## - BAL             1      0.77 24936 -2600.1
## - avg_qbtdp_plyr  1      0.88 24936 -2600.0
## - TEN             1      1.31 24936 -2599.5
## - CIN             1      1.52 24937 -2599.3
## - grass_1         1      1.55 24937 -2599.3
## <none>                        24935 -2599.0
## - NE              1      2.07 24937 -2598.7
## - NOR             1      2.24 24937 -2598.5
## - IND             1      2.36 24937 -2598.4
## - NYJ             1      3.26 24938 -2597.4
## - cold_weather    1      3.27 24938 -2597.4
## - CHI             1      3.68 24939 -2596.9
## - avg_fuml_plyr   1   1213.13 26148 -1295.3
## 
## Step:  AIC=-2600.95
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET + 
##     GB + IND + JAC + MINN + NE + NOR + NYG + NYJ + PHI + PIT + 
##     SEA + TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - JAC             1      0.06 24935 -2602.9
## - avg_rectd_plyr  1      0.08 24935 -2602.9
## - bad_weather_1   1      0.09 24935 -2602.9
## - SEA             1      0.09 24935 -2602.9
## - GB              1      0.13 24935 -2602.8
## - TB              1      0.13 24935 -2602.8
## - DET             1      0.13 24935 -2602.8
## - CLE             1      0.14 24935 -2602.8
## - PHI             1      0.16 24935 -2602.8
## - MINN            1      0.17 24935 -2602.8
## - NYG             1      0.17 24935 -2602.8
## - forty1          1      0.20 24935 -2602.7
## - ATL             1      0.22 24935 -2602.7
## - avg_rbry_plyr   1      0.25 24935 -2602.7
## - home_team_1     1      0.26 24935 -2602.7
## - WAS             1      0.26 24935 -2602.7
## - BUF             1      0.33 24935 -2602.6
## - DAL             1      0.33 24935 -2602.6
## - avg_rbry_pos    1      0.33 24935 -2602.6
## - vertical1       1      0.35 24935 -2602.6
## - height          1      0.44 24936 -2602.5
## - CAR             1      0.48 24936 -2602.4
## - PIT             1      0.48 24936 -2602.4
## - ARI             1      0.58 24936 -2602.3
## - BAL             1      0.75 24936 -2602.1
## - avg_qbtdp_plyr  1      0.88 24936 -2602.0
## - TEN             1      1.29 24936 -2601.5
## - CIN             1      1.51 24937 -2601.3
## - grass_1         1      1.57 24937 -2601.2
## <none>                        24935 -2600.9
## - NE              1      2.05 24937 -2600.7
## - NOR             1      2.23 24937 -2600.5
## - IND             1      2.34 24937 -2600.4
## - cold_weather    1      3.25 24938 -2599.4
## - NYJ             1      3.25 24938 -2599.4
## - CHI             1      3.67 24939 -2598.9
## - avg_fuml_plyr   1   1213.27 26148 -1297.2
## 
## Step:  AIC=-2602.88
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET + 
##     GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + 
##     TB + TEN + WAS + avg_rectd_plyr + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - avg_rectd_plyr  1      0.08 24935 -2604.8
## - bad_weather_1   1      0.09 24935 -2604.8
## - SEA             1      0.11 24935 -2604.8
## - GB              1      0.11 24935 -2604.8
## - TB              1      0.11 24935 -2604.8
## - DET             1      0.12 24935 -2604.8
## - CLE             1      0.12 24935 -2604.8
## - MINN            1      0.15 24935 -2604.7
## - PHI             1      0.18 24935 -2604.7
## - ATL             1      0.20 24935 -2604.7
## - NYG             1      0.20 24935 -2604.7
## - forty1          1      0.21 24935 -2604.7
## - WAS             1      0.23 24935 -2604.6
## - avg_rbry_plyr   1      0.25 24935 -2604.6
## - home_team_1     1      0.26 24935 -2604.6
## - BUF             1      0.30 24936 -2604.6
## - DAL             1      0.30 24936 -2604.6
## - avg_rbry_pos    1      0.34 24936 -2604.5
## - vertical1       1      0.37 24936 -2604.5
## - height          1      0.45 24936 -2604.4
## - CAR             1      0.45 24936 -2604.4
## - PIT             1      0.45 24936 -2604.4
## - ARI             1      0.55 24936 -2604.3
## - BAL             1      0.71 24936 -2604.1
## - avg_qbtdp_plyr  1      0.89 24936 -2603.9
## - TEN             1      1.25 24936 -2603.5
## - CIN             1      1.46 24937 -2603.3
## - grass_1         1      1.58 24937 -2603.1
## <none>                        24935 -2602.9
## - NE              1      2.00 24937 -2602.7
## - NOR             1      2.17 24937 -2602.5
## - IND             1      2.29 24938 -2602.4
## - NYJ             1      3.19 24938 -2601.4
## - cold_weather    1      3.28 24938 -2601.3
## - CHI             1      3.61 24939 -2600.9
## - avg_fuml_plyr   1   1213.63 26149 -1298.7
## 
## Step:  AIC=-2604.8
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET + 
##     GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + 
##     TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1 + bad_weather_1
## 
##                  Df Sum of Sq   RSS     AIC
## - bad_weather_1   1      0.09 24935 -2606.7
## - SEA             1      0.10 24935 -2606.7
## - CLE             1      0.11 24935 -2606.7
## - TB              1      0.11 24935 -2606.7
## - DET             1      0.13 24935 -2606.7
## - GB              1      0.13 24935 -2606.7
## - MINN            1      0.14 24935 -2606.6
## - PHI             1      0.18 24935 -2606.6
## - forty1          1      0.19 24935 -2606.6
## - NYG             1      0.19 24935 -2606.6
## - ATL             1      0.21 24936 -2606.6
## - WAS             1      0.23 24936 -2606.5
## - avg_rbry_plyr   1      0.25 24936 -2606.5
## - home_team_1     1      0.27 24936 -2606.5
## - BUF             1      0.30 24936 -2606.5
## - DAL             1      0.32 24936 -2606.4
## - vertical1       1      0.39 24936 -2606.4
## - height          1      0.40 24936 -2606.4
## - CAR             1      0.44 24936 -2606.3
## - PIT             1      0.46 24936 -2606.3
## - avg_rbry_pos    1      0.50 24936 -2606.2
## - ARI             1      0.54 24936 -2606.2
## - BAL             1      0.71 24936 -2606.0
## - avg_qbtdp_plyr  1      0.82 24936 -2605.9
## - TEN             1      1.23 24937 -2605.4
## - CIN             1      1.46 24937 -2605.2
## - grass_1         1      1.59 24937 -2605.0
## <none>                        24935 -2604.8
## - NE              1      2.15 24937 -2604.4
## - NOR             1      2.28 24938 -2604.3
## - IND             1      2.31 24938 -2604.2
## - NYJ             1      3.18 24938 -2603.3
## - cold_weather    1      3.29 24939 -2603.2
## - CHI             1      3.60 24939 -2602.8
## - avg_fuml_plyr   1   1214.04 26149 -1300.2
## 
## Step:  AIC=-2606.7
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + CLE + DAL + DET + 
##     GB + IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + 
##     TB + TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - CLE             1      0.10 24935 -2608.6
## - SEA             1      0.11 24935 -2608.6
## - TB              1      0.12 24935 -2608.6
## - DET             1      0.12 24936 -2608.6
## - GB              1      0.13 24936 -2608.6
## - MINN            1      0.14 24936 -2608.6
## - PHI             1      0.18 24936 -2608.5
## - forty1          1      0.18 24936 -2608.5
## - NYG             1      0.20 24936 -2608.5
## - ATL             1      0.21 24936 -2608.5
## - WAS             1      0.23 24936 -2608.4
## - avg_rbry_plyr   1      0.25 24936 -2608.4
## - home_team_1     1      0.26 24936 -2608.4
## - BUF             1      0.29 24936 -2608.4
## - DAL             1      0.32 24936 -2608.3
## - vertical1       1      0.39 24936 -2608.3
## - height          1      0.40 24936 -2608.3
## - CAR             1      0.44 24936 -2608.2
## - PIT             1      0.46 24936 -2608.2
## - avg_rbry_pos    1      0.50 24936 -2608.2
## - ARI             1      0.54 24936 -2608.1
## - BAL             1      0.71 24936 -2607.9
## - avg_qbtdp_plyr  1      0.81 24936 -2607.8
## - TEN             1      1.24 24937 -2607.3
## - CIN             1      1.45 24937 -2607.1
## - grass_1         1      1.57 24937 -2607.0
## <none>                        24935 -2606.7
## - NE              1      2.12 24937 -2606.4
## - NOR             1      2.27 24938 -2606.2
## - IND             1      2.31 24938 -2606.2
## - NYJ             1      3.17 24939 -2605.2
## - cold_weather    1      3.49 24939 -2604.9
## - CHI             1      3.56 24939 -2604.8
## - avg_fuml_plyr   1   1213.96 26149 -1302.2
## 
## Step:  AIC=-2608.59
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + GB + 
##     IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TB + 
##     TEN + WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - TB              1      0.10 24936 -2610.5
## - GB              1      0.10 24936 -2610.5
## - DET             1      0.11 24936 -2610.5
## - MINN            1      0.12 24936 -2610.5
## - SEA             1      0.13 24936 -2610.4
## - forty1          1      0.19 24936 -2610.4
## - ATL             1      0.19 24936 -2610.4
## - WAS             1      0.20 24936 -2610.4
## - PHI             1      0.21 24936 -2610.4
## - NYG             1      0.23 24936 -2610.3
## - avg_rbry_plyr   1      0.25 24936 -2610.3
## - BUF             1      0.26 24936 -2610.3
## - home_team_1     1      0.27 24936 -2610.3
## - DAL             1      0.29 24936 -2610.3
## - vertical1       1      0.40 24936 -2610.2
## - CAR             1      0.40 24936 -2610.2
## - height          1      0.41 24936 -2610.1
## - PIT             1      0.41 24936 -2610.1
## - ARI             1      0.50 24936 -2610.0
## - avg_rbry_pos    1      0.51 24936 -2610.0
## - BAL             1      0.67 24936 -2609.8
## - avg_qbtdp_plyr  1      0.80 24936 -2609.7
## - TEN             1      1.18 24937 -2609.3
## - CIN             1      1.39 24937 -2609.1
## - grass_1         1      1.59 24937 -2608.8
## <none>                        24935 -2608.6
## - NE              1      2.05 24938 -2608.3
## - NOR             1      2.20 24938 -2608.2
## - IND             1      2.24 24938 -2608.1
## - NYJ             1      3.09 24939 -2607.2
## - cold_weather    1      3.41 24939 -2606.8
## - CHI             1      3.48 24939 -2606.8
## - avg_fuml_plyr   1   1214.82 26150 -1303.2
## 
## Step:  AIC=-2610.48
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + GB + 
##     IND + MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN + 
##     WAS + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - GB              1      0.09 24936 -2612.4
## - DET             1      0.09 24936 -2612.4
## - MINN            1      0.10 24936 -2612.4
## - SEA             1      0.15 24936 -2612.3
## - ATL             1      0.17 24936 -2612.3
## - WAS             1      0.18 24936 -2612.3
## - forty1          1      0.19 24936 -2612.3
## - PHI             1      0.23 24936 -2612.2
## - BUF             1      0.24 24936 -2612.2
## - avg_rbry_plyr   1      0.25 24936 -2612.2
## - NYG             1      0.26 24936 -2612.2
## - DAL             1      0.26 24936 -2612.2
## - home_team_1     1      0.28 24936 -2612.2
## - CAR             1      0.37 24936 -2612.1
## - PIT             1      0.38 24936 -2612.1
## - vertical1       1      0.39 24936 -2612.1
## - height          1      0.40 24936 -2612.0
## - ARI             1      0.47 24936 -2612.0
## - avg_rbry_pos    1      0.51 24936 -2611.9
## - BAL             1      0.63 24936 -2611.8
## - avg_qbtdp_plyr  1      0.79 24936 -2611.6
## - TEN             1      1.13 24937 -2611.2
## - CIN             1      1.33 24937 -2611.0
## - grass_1         1      1.60 24937 -2610.7
## <none>                        24936 -2610.5
## - NE              1      1.99 24938 -2610.3
## - NOR             1      2.14 24938 -2610.1
## - IND             1      2.18 24938 -2610.1
## - NYJ             1      3.01 24939 -2609.2
## - CHI             1      3.40 24939 -2608.7
## - cold_weather    1      3.47 24939 -2608.7
## - avg_fuml_plyr   1   1214.75 26150 -1305.2
## 
## Step:  AIC=-2612.39
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + DET + IND + 
##     MINN + NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS + 
##     avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - DET             1      0.08 24936 -2614.3
## - MINN            1      0.09 24936 -2614.3
## - ATL             1      0.15 24936 -2614.2
## - WAS             1      0.16 24936 -2614.2
## - SEA             1      0.18 24936 -2614.2
## - forty1          1      0.19 24936 -2614.2
## - BUF             1      0.22 24936 -2614.2
## - DAL             1      0.24 24936 -2614.1
## - avg_rbry_plyr   1      0.25 24936 -2614.1
## - PHI             1      0.26 24936 -2614.1
## - NYG             1      0.29 24936 -2614.1
## - home_team_1     1      0.29 24936 -2614.1
## - CAR             1      0.34 24936 -2614.0
## - PIT             1      0.35 24936 -2614.0
## - vertical1       1      0.38 24936 -2614.0
## - height          1      0.41 24936 -2613.9
## - ARI             1      0.44 24936 -2613.9
## - avg_rbry_pos    1      0.52 24936 -2613.8
## - BAL             1      0.59 24936 -2613.7
## - avg_qbtdp_plyr  1      0.82 24936 -2613.5
## - TEN             1      1.09 24937 -2613.2
## - CIN             1      1.28 24937 -2613.0
## - grass_1         1      1.60 24937 -2612.6
## <none>                        24936 -2612.4
## - NE              1      1.92 24938 -2612.3
## - NOR             1      2.08 24938 -2612.1
## - IND             1      2.12 24938 -2612.1
## - NYJ             1      2.95 24939 -2611.1
## - CHI             1      3.33 24939 -2610.7
## - cold_weather    1      3.40 24939 -2610.6
## - avg_fuml_plyr   1   1218.18 26154 -1303.5
## 
## Step:  AIC=-2614.3
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + IND + MINN + 
##     NE + NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - MINN            1      0.08 24936 -2616.2
## - ATL             1      0.13 24936 -2616.2
## - WAS             1      0.14 24936 -2616.2
## - forty1          1      0.19 24936 -2616.1
## - BUF             1      0.19 24936 -2616.1
## - SEA             1      0.20 24936 -2616.1
## - DAL             1      0.22 24936 -2616.1
## - avg_rbry_plyr   1      0.25 24936 -2616.0
## - home_team_1     1      0.27 24936 -2616.0
## - PHI             1      0.28 24936 -2616.0
## - NYG             1      0.32 24936 -2615.9
## - CAR             1      0.32 24936 -2615.9
## - PIT             1      0.33 24936 -2615.9
## - vertical1       1      0.39 24936 -2615.9
## - height          1      0.41 24936 -2615.8
## - ARI             1      0.41 24936 -2615.8
## - avg_rbry_pos    1      0.51 24936 -2615.7
## - BAL             1      0.56 24936 -2615.7
## - avg_qbtdp_plyr  1      0.82 24937 -2615.4
## - TEN             1      1.05 24937 -2615.1
## - CIN             1      1.24 24937 -2614.9
## - grass_1         1      1.54 24937 -2614.6
## <none>                        24936 -2614.3
## - NE              1      1.87 24938 -2614.2
## - NOR             1      2.02 24938 -2614.1
## - IND             1      2.06 24938 -2614.0
## - NYJ             1      2.89 24939 -2613.1
## - CHI             1      3.28 24939 -2612.7
## - cold_weather    1      3.44 24939 -2612.5
## - avg_fuml_plyr   1   1218.29 26154 -1305.3
## 
## Step:  AIC=-2616.22
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + ATL + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE + 
##     NOR + NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - ATL             1      0.12 24936 -2618.1
## - WAS             1      0.13 24936 -2618.1
## - BUF             1      0.18 24936 -2618.0
## - forty1          1      0.19 24936 -2618.0
## - DAL             1      0.20 24936 -2618.0
## - SEA             1      0.23 24936 -2618.0
## - avg_rbry_plyr   1      0.26 24936 -2617.9
## - home_team_1     1      0.28 24936 -2617.9
## - CAR             1      0.30 24936 -2617.9
## - PHI             1      0.30 24936 -2617.9
## - PIT             1      0.31 24936 -2617.9
## - NYG             1      0.35 24936 -2617.8
## - ARI             1      0.38 24936 -2617.8
## - height          1      0.40 24936 -2617.8
## - vertical1       1      0.40 24936 -2617.8
## - avg_rbry_pos    1      0.51 24936 -2617.7
## - BAL             1      0.53 24936 -2617.6
## - avg_qbtdp_plyr  1      0.82 24937 -2617.3
## - TEN             1      1.02 24937 -2617.1
## - CIN             1      1.19 24937 -2616.9
## - grass_1         1      1.48 24937 -2616.6
## <none>                        24936 -2616.2
## - NE              1      1.82 24938 -2616.2
## - NOR             1      1.96 24938 -2616.1
## - IND             1      2.01 24938 -2616.0
## - NYJ             1      2.83 24939 -2615.1
## - CHI             1      3.23 24939 -2614.7
## - cold_weather    1      3.42 24939 -2614.4
## - avg_fuml_plyr   1   1218.34 26154 -1307.1
## 
## Step:  AIC=-2618.09
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE + NOR + 
##     NYG + NYJ + PHI + PIT + SEA + TEN + WAS + avg_rbry_plyr + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - WAS             1      0.12 24936 -2620.0
## - BUF             1      0.16 24936 -2619.9
## - DAL             1      0.17 24936 -2619.9
## - forty1          1      0.19 24936 -2619.9
## - home_team_1     1      0.24 24936 -2619.8
## - SEA             1      0.25 24936 -2619.8
## - avg_rbry_plyr   1      0.26 24936 -2619.8
## - CAR             1      0.28 24936 -2619.8
## - PIT             1      0.29 24936 -2619.8
## - PHI             1      0.32 24936 -2619.7
## - ARI             1      0.35 24936 -2619.7
## - NYG             1      0.38 24936 -2619.7
## - vertical1       1      0.38 24936 -2619.7
## - height          1      0.42 24936 -2619.6
## - BAL             1      0.49 24936 -2619.5
## - avg_rbry_pos    1      0.52 24936 -2619.5
## - avg_qbtdp_plyr  1      0.84 24937 -2619.2
## - TEN             1      0.99 24937 -2619.0
## - CIN             1      1.15 24937 -2618.8
## - grass_1         1      1.41 24937 -2618.5
## - NE              1      1.75 24938 -2618.2
## <none>                        24936 -2618.1
## - NOR             1      1.89 24938 -2618.0
## - IND             1      1.94 24938 -2617.9
## - NYJ             1      2.76 24939 -2617.1
## - CHI             1      3.18 24939 -2616.6
## - cold_weather    1      3.49 24939 -2616.2
## - avg_fuml_plyr   1   1222.16 26158 -1305.0
## 
## Step:  AIC=-2619.96
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + BAL + BUF + CAR + CHI + CIN + DAL + IND + NE + NOR + 
##     NYG + NYJ + PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - BUF             1      0.14 24936 -2621.8
## - DAL             1      0.16 24936 -2621.8
## - forty1          1      0.18 24936 -2621.8
## - avg_rbry_plyr   1      0.25 24936 -2621.7
## - home_team_1     1      0.25 24936 -2621.7
## - CAR             1      0.26 24936 -2621.7
## - PIT             1      0.27 24936 -2621.7
## - SEA             1      0.28 24936 -2621.7
## - ARI             1      0.33 24936 -2621.6
## - PHI             1      0.35 24936 -2621.6
## - vertical1       1      0.38 24936 -2621.5
## - NYG             1      0.40 24936 -2621.5
## - height          1      0.44 24936 -2621.5
## - BAL             1      0.47 24937 -2621.4
## - avg_rbry_pos    1      0.53 24937 -2621.4
## - avg_qbtdp_plyr  1      0.85 24937 -2621.0
## - TEN             1      0.94 24937 -2620.9
## - CIN             1      1.11 24937 -2620.7
## - grass_1         1      1.44 24937 -2620.4
## - NE              1      1.71 24938 -2620.1
## <none>                        24936 -2620.0
## - NOR             1      1.84 24938 -2619.9
## - IND             1      1.89 24938 -2619.9
## - NYJ             1      2.70 24939 -2619.0
## - CHI             1      3.11 24939 -2618.5
## - cold_weather    1      3.47 24940 -2618.1
## - avg_fuml_plyr   1   1222.52 26159 -1306.5
## 
## Step:  AIC=-2621.81
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + BAL + CAR + CHI + CIN + DAL + IND + NE + NOR + NYG + 
##     NYJ + PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - DAL             1      0.14 24936 -2623.7
## - forty1          1      0.16 24936 -2623.6
## - CAR             1      0.24 24936 -2623.5
## - PIT             1      0.25 24936 -2623.5
## - avg_rbry_plyr   1      0.25 24936 -2623.5
## - home_team_1     1      0.27 24936 -2623.5
## - ARI             1      0.30 24936 -2623.5
## - SEA             1      0.31 24937 -2623.5
## - vertical1       1      0.36 24937 -2623.4
## - PHI             1      0.38 24937 -2623.4
## - height          1      0.42 24937 -2623.3
## - BAL             1      0.43 24937 -2623.3
## - NYG             1      0.45 24937 -2623.3
## - avg_rbry_pos    1      0.52 24937 -2623.2
## - avg_qbtdp_plyr  1      0.84 24937 -2622.9
## - TEN             1      0.91 24937 -2622.8
## - CIN             1      1.05 24937 -2622.7
## - grass_1         1      1.35 24938 -2622.3
## - NE              1      1.64 24938 -2622.0
## - NOR             1      1.78 24938 -2621.8
## <none>                        24936 -2621.8
## - IND             1      1.83 24938 -2621.8
## - NYJ             1      2.62 24939 -2620.9
## - CHI             1      3.04 24939 -2620.4
## - cold_weather    1      3.40 24940 -2620.1
## - avg_fuml_plyr   1   1222.44 26159 -1308.5
## 
## Step:  AIC=-2623.65
## fuml ~ height + cold_weather + home_team_1 + forty1 + vertical1 + 
##     ARI + BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ + 
##     PHI + PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - forty1          1      0.16 24936 -2625.5
## - CAR             1      0.22 24937 -2625.4
## - PIT             1      0.23 24937 -2625.4
## - home_team_1     1      0.24 24937 -2625.4
## - avg_rbry_plyr   1      0.26 24937 -2625.4
## - ARI             1      0.27 24937 -2625.4
## - SEA             1      0.34 24937 -2625.3
## - vertical1       1      0.36 24937 -2625.3
## - PHI             1      0.40 24937 -2625.2
## - BAL             1      0.41 24937 -2625.2
## - height          1      0.42 24937 -2625.2
## - NYG             1      0.48 24937 -2625.1
## - avg_rbry_pos    1      0.53 24937 -2625.1
## - avg_qbtdp_plyr  1      0.85 24937 -2624.7
## - TEN             1      0.88 24937 -2624.7
## - CIN             1      1.01 24937 -2624.5
## - grass_1         1      1.28 24938 -2624.2
## - NE              1      1.59 24938 -2623.9
## - NOR             1      1.72 24938 -2623.8
## - IND             1      1.76 24938 -2623.7
## <none>                        24936 -2623.7
## - NYJ             1      2.56 24939 -2622.8
## - CHI             1      2.99 24939 -2622.3
## - cold_weather    1      3.43 24940 -2621.9
## - avg_fuml_plyr   1   1222.72 26159 -1310.0
## 
## Step:  AIC=-2625.48
## fuml ~ height + cold_weather + home_team_1 + vertical1 + ARI + 
##     BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + 
##     PIT + SEA + TEN + avg_rbry_plyr + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - avg_rbry_plyr   1      0.20 24937 -2627.3
## - vertical1       1      0.21 24937 -2627.2
## - CAR             1      0.22 24937 -2627.2
## - PIT             1      0.23 24937 -2627.2
## - home_team_1     1      0.23 24937 -2627.2
## - ARI             1      0.25 24937 -2627.2
## - height          1      0.28 24937 -2627.2
## - SEA             1      0.35 24937 -2627.1
## - BAL             1      0.41 24937 -2627.0
## - PHI             1      0.41 24937 -2627.0
## - avg_rbry_pos    1      0.44 24937 -2627.0
## - NYG             1      0.47 24937 -2627.0
## - TEN             1      0.88 24937 -2626.5
## - CIN             1      1.01 24937 -2626.4
## - avg_qbtdp_plyr  1      1.10 24938 -2626.3
## - grass_1         1      1.27 24938 -2626.1
## - NOR             1      1.69 24938 -2625.6
## - NE              1      1.70 24938 -2625.6
## - IND             1      1.77 24938 -2625.5
## <none>                        24936 -2625.5
## - NYJ             1      2.60 24939 -2624.6
## - CHI             1      2.95 24939 -2624.2
## - cold_weather    1      3.42 24940 -2623.7
## - avg_fuml_plyr   1   1225.11 26162 -1309.3
## 
## Step:  AIC=-2627.26
## fuml ~ height + cold_weather + home_team_1 + vertical1 + ARI + 
##     BAL + CAR + CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + 
##     PIT + SEA + TEN + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - vertical1       1      0.23 24937 -2629.0
## - CAR             1      0.23 24937 -2629.0
## - home_team_1     1      0.23 24937 -2629.0
## - PIT             1      0.23 24937 -2629.0
## - avg_rbry_pos    1      0.24 24937 -2629.0
## - ARI             1      0.24 24937 -2629.0
## - height          1      0.28 24937 -2628.9
## - SEA             1      0.33 24937 -2628.9
## - PHI             1      0.40 24937 -2628.8
## - BAL             1      0.40 24937 -2628.8
## - NYG             1      0.48 24937 -2628.7
## - TEN             1      0.88 24938 -2628.3
## - avg_qbtdp_plyr  1      0.96 24938 -2628.2
## - CIN             1      1.03 24938 -2628.1
## - grass_1         1      1.27 24938 -2627.9
## - NOR             1      1.67 24938 -2627.4
## - NE              1      1.73 24938 -2627.3
## - IND             1      1.77 24938 -2627.3
## <none>                        24937 -2627.3
## - NYJ             1      2.62 24939 -2626.4
## - CHI             1      2.97 24940 -2626.0
## - cold_weather    1      3.42 24940 -2625.5
## - avg_fuml_plyr   1   1371.11 26308 -1158.2
## 
## Step:  AIC=-2629.01
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CAR + 
##     CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + PIT + SEA + 
##     TEN + avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - PIT             1      0.23 24937 -2630.8
## - home_team_1     1      0.24 24937 -2630.7
## - ARI             1      0.24 24937 -2630.7
## - CAR             1      0.24 24937 -2630.7
## - SEA             1      0.31 24937 -2630.7
## - avg_rbry_pos    1      0.33 24937 -2630.7
## - height          1      0.38 24937 -2630.6
## - BAL             1      0.40 24937 -2630.6
## - PHI             1      0.41 24937 -2630.6
## - NYG             1      0.49 24937 -2630.5
## - avg_qbtdp_plyr  1      0.79 24938 -2630.1
## - TEN             1      0.89 24938 -2630.0
## - CIN             1      1.01 24938 -2629.9
## - grass_1         1      1.28 24938 -2629.6
## - NE              1      1.66 24939 -2629.2
## - NOR             1      1.71 24939 -2629.1
## <none>                        24937 -2629.0
## - IND             1      1.82 24939 -2629.0
## - NYJ             1      2.71 24940 -2628.0
## - CHI             1      2.94 24940 -2627.8
## - cold_weather    1      3.41 24940 -2627.2
## - avg_fuml_plyr   1   1370.93 26308 -1160.1
## 
## Step:  AIC=-2630.75
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CAR + 
##     CHI + CIN + IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN + 
##     avg_rbry_pos + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - CAR             1      0.22 24937 -2632.5
## - ARI             1      0.22 24937 -2632.5
## - home_team_1     1      0.25 24937 -2632.5
## - avg_rbry_pos    1      0.33 24937 -2632.4
## - SEA             1      0.34 24937 -2632.4
## - BAL             1      0.37 24938 -2632.3
## - height          1      0.38 24938 -2632.3
## - PHI             1      0.45 24938 -2632.2
## - NYG             1      0.53 24938 -2632.2
## - avg_qbtdp_plyr  1      0.79 24938 -2631.9
## - TEN             1      0.84 24938 -2631.8
## - CIN             1      0.97 24938 -2631.7
## - grass_1         1      1.35 24938 -2631.3
## - NE              1      1.59 24939 -2631.0
## - NOR             1      1.66 24939 -2630.9
## - IND             1      1.77 24939 -2630.8
## <none>                        24937 -2630.8
## - NYJ             1      2.63 24940 -2629.8
## - CHI             1      2.85 24940 -2629.6
## - cold_weather    1      3.27 24940 -2629.1
## - avg_fuml_plyr   1   1370.76 26308 -1162.0
## 
## Step:  AIC=-2632.51
## fuml ~ height + cold_weather + home_team_1 + ARI + BAL + CHI + 
##     CIN + IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - ARI             1      0.20 24938 -2634.3
## - home_team_1     1      0.27 24938 -2634.2
## - avg_rbry_pos    1      0.33 24938 -2634.1
## - BAL             1      0.34 24938 -2634.1
## - SEA             1      0.37 24938 -2634.1
## - height          1      0.38 24938 -2634.1
## - PHI             1      0.49 24938 -2634.0
## - NYG             1      0.56 24938 -2633.9
## - avg_qbtdp_plyr  1      0.78 24938 -2633.7
## - TEN             1      0.80 24938 -2633.6
## - CIN             1      0.93 24938 -2633.5
## - grass_1         1      1.40 24939 -2633.0
## - NE              1      1.54 24939 -2632.8
## - NOR             1      1.61 24939 -2632.7
## - IND             1      1.72 24939 -2632.6
## <none>                        24937 -2632.5
## - NYJ             1      2.57 24940 -2631.7
## - CHI             1      2.78 24940 -2631.4
## - cold_weather    1      3.29 24941 -2630.9
## - avg_fuml_plyr   1   1370.61 26308 -1164.0
## 
## Step:  AIC=-2634.28
## fuml ~ height + cold_weather + home_team_1 + BAL + CHI + CIN + 
##     IND + NE + NOR + NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - home_team_1     1      0.22 24938 -2636.0
## - BAL             1      0.32 24938 -2635.9
## - avg_rbry_pos    1      0.33 24938 -2635.9
## - height          1      0.37 24938 -2635.9
## - SEA             1      0.40 24938 -2635.8
## - PHI             1      0.51 24938 -2635.7
## - NYG             1      0.60 24938 -2635.6
## - avg_qbtdp_plyr  1      0.77 24938 -2635.4
## - TEN             1      0.77 24938 -2635.4
## - CIN             1      0.88 24938 -2635.3
## - grass_1         1      1.32 24939 -2634.8
## - NE              1      1.49 24939 -2634.6
## - NOR             1      1.54 24939 -2634.6
## - IND             1      1.65 24939 -2634.5
## <none>                        24938 -2634.3
## - NYJ             1      2.50 24940 -2633.5
## - CHI             1      2.72 24940 -2633.3
## - cold_weather    1      3.30 24941 -2632.7
## - avg_fuml_plyr   1   1370.41 26308 -1166.0
## 
## Step:  AIC=-2636.04
## fuml ~ height + cold_weather + BAL + CHI + CIN + IND + NE + NOR + 
##     NYG + NYJ + PHI + SEA + TEN + avg_rbry_pos + avg_fuml_plyr + 
##     avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - avg_rbry_pos    1      0.34 24938 -2637.7
## - BAL             1      0.35 24938 -2637.7
## - SEA             1      0.36 24938 -2637.6
## - height          1      0.37 24938 -2637.6
## - PHI             1      0.49 24938 -2637.5
## - NYG             1      0.56 24938 -2637.4
## - avg_qbtdp_plyr  1      0.76 24939 -2637.2
## - TEN             1      0.80 24939 -2637.2
## - CIN             1      0.94 24939 -2637.0
## - NOR             1      1.51 24939 -2636.4
## - IND             1      1.58 24939 -2636.3
## - NE              1      1.59 24939 -2636.3
## - grass_1         1      1.67 24939 -2636.2
## <none>                        24938 -2636.0
## - NYJ             1      2.60 24940 -2635.2
## - CHI             1      2.76 24941 -2635.0
## - cold_weather    1      3.17 24941 -2634.6
## - avg_fuml_plyr   1   1370.19 26308 -1168.0
## 
## Step:  AIC=-2637.67
## fuml ~ height + cold_weather + BAL + CHI + CIN + IND + NE + NOR + 
##     NYG + NYJ + PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - height          1      0.15 24938 -2639.5
## - BAL             1      0.34 24938 -2639.3
## - SEA             1      0.35 24938 -2639.3
## - PHI             1      0.47 24939 -2639.2
## - NYG             1      0.57 24939 -2639.0
## - avg_qbtdp_plyr  1      0.81 24939 -2638.8
## - TEN             1      0.82 24939 -2638.8
## - CIN             1      0.95 24939 -2638.6
## - NOR             1      1.48 24940 -2638.0
## - NE              1      1.58 24940 -2637.9
## - IND             1      1.63 24940 -2637.9
## - grass_1         1      1.68 24940 -2637.8
## <none>                        24938 -2637.7
## - NYJ             1      2.63 24941 -2636.8
## - CHI             1      2.78 24941 -2636.6
## - cold_weather    1      3.17 24941 -2636.2
## - avg_fuml_plyr   1   1465.76 26404 -1070.0
## 
## Step:  AIC=-2639.5
## fuml ~ cold_weather + BAL + CHI + CIN + IND + NE + NOR + NYG + 
##     NYJ + PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr + 
##     grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - BAL             1      0.33 24939 -2641.1
## - SEA             1      0.33 24939 -2641.1
## - PHI             1      0.46 24939 -2641.0
## - NYG             1      0.58 24939 -2640.9
## - avg_qbtdp_plyr  1      0.67 24939 -2640.8
## - TEN             1      0.82 24939 -2640.6
## - CIN             1      0.95 24939 -2640.4
## - NOR             1      1.52 24940 -2639.8
## - NE              1      1.64 24940 -2639.7
## - IND             1      1.66 24940 -2639.7
## - grass_1         1      1.69 24940 -2639.6
## <none>                        24938 -2639.5
## - NYJ             1      2.63 24941 -2638.6
## - CHI             1      2.74 24941 -2638.5
## - cold_weather    1      3.16 24941 -2638.0
## - avg_fuml_plyr   1   1506.14 26444 -1029.8
## 
## Step:  AIC=-2641.14
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ + 
##     PHI + SEA + TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - SEA             1      0.38 24939 -2642.7
## - PHI             1      0.50 24939 -2642.6
## - NYG             1      0.63 24939 -2642.4
## - avg_qbtdp_plyr  1      0.70 24939 -2642.4
## - TEN             1      0.78 24939 -2642.3
## - CIN             1      0.89 24940 -2642.2
## - NOR             1      1.44 24940 -2641.6
## - NE              1      1.55 24940 -2641.4
## - IND             1      1.58 24940 -2641.4
## - grass_1         1      1.60 24940 -2641.4
## <none>                        24939 -2641.1
## - NYJ             1      2.54 24941 -2640.3
## - CHI             1      2.66 24941 -2640.2
## - cold_weather    1      3.04 24942 -2639.8
## - avg_fuml_plyr   1   1508.77 26447 -1028.7
## 
## Step:  AIC=-2642.72
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ + 
##     PHI + TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - PHI             1      0.47 24939 -2644.2
## - NYG             1      0.58 24940 -2644.1
## - avg_qbtdp_plyr  1      0.68 24940 -2644.0
## - TEN             1      0.82 24940 -2643.8
## - CIN             1      0.97 24940 -2643.7
## - NOR             1      1.54 24941 -2643.0
## - NE              1      1.67 24941 -2642.9
## - IND             1      1.68 24941 -2642.9
## <none>                        24939 -2642.7
## - grass_1         1      1.82 24941 -2642.7
## - NYJ             1      2.66 24942 -2641.8
## - CHI             1      2.74 24942 -2641.7
## - cold_weather    1      3.21 24942 -2641.2
## - avg_fuml_plyr   1   1508.81 26448 -1030.3
## 
## Step:  AIC=-2644.21
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYG + NYJ + 
##     TEN + avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - NYG             1      0.54 24940 -2645.6
## - avg_qbtdp_plyr  1      0.71 24940 -2645.4
## - TEN             1      0.88 24940 -2645.2
## - CIN             1      1.02 24940 -2645.1
## - NOR             1      1.60 24941 -2644.4
## - NE              1      1.73 24941 -2644.3
## - grass_1         1      1.73 24941 -2644.3
## - IND             1      1.74 24941 -2644.3
## <none>                        24939 -2644.2
## - NYJ             1      2.75 24942 -2643.2
## - CHI             1      2.85 24942 -2643.1
## - cold_weather    1      3.26 24943 -2642.6
## - avg_fuml_plyr   1   1515.63 26455 -1024.7
## 
## Step:  AIC=-2645.61
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + TEN + 
##     avg_fuml_plyr + avg_qbtdp_plyr + grass_1
## 
##                  Df Sum of Sq   RSS     AIC
## - avg_qbtdp_plyr  1      0.70 24941 -2646.8
## - TEN             1      0.92 24941 -2646.6
## - CIN             1      1.10 24941 -2646.4
## - NOR             1      1.70 24942 -2645.7
## <none>                        24940 -2645.6
## - IND             1      1.85 24942 -2645.6
## - NE              1      1.85 24942 -2645.6
## - grass_1         1      1.96 24942 -2645.4
## - NYJ             1      2.89 24943 -2644.4
## - CHI             1      2.94 24943 -2644.4
## - cold_weather    1      3.42 24943 -2643.8
## - avg_fuml_plyr   1   1515.79 26456 -1026.0
## 
## Step:  AIC=-2646.83
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + TEN + 
##     avg_fuml_plyr + grass_1
## 
##                 Df Sum of Sq   RSS      AIC
## - TEN            1      0.89 24942 -2647.85
## - CIN            1      1.11 24942 -2647.61
## - NOR            1      1.81 24943 -2646.84
## <none>                       24941 -2646.83
## - IND            1      1.88 24943 -2646.76
## - grass_1        1      1.95 24943 -2646.69
## - NE             1      2.02 24943 -2646.61
## - NYJ            1      2.81 24944 -2645.74
## - CHI            1      2.88 24944 -2645.66
## - cold_weather   1      3.41 24944 -2645.08
## - avg_fuml_plyr  1   2528.17 27469     4.81
## 
## Step:  AIC=-2647.85
## fuml ~ cold_weather + CHI + CIN + IND + NE + NOR + NYJ + avg_fuml_plyr + 
##     grass_1
## 
##                 Df Sum of Sq   RSS      AIC
## - CIN            1      1.06 24943 -2648.68
## - NOR            1      1.72 24943 -2647.95
## - IND            1      1.81 24943 -2647.86
## <none>                       24942 -2647.85
## - NE             1      1.94 24944 -2647.71
## - grass_1        1      2.16 24944 -2647.46
## - NYJ            1      2.71 24944 -2646.86
## - CHI            1      2.75 24944 -2646.81
## - cold_weather   1      3.49 24945 -2646.00
## - avg_fuml_plyr  1   2527.57 27469     3.11
## 
## Step:  AIC=-2648.68
## fuml ~ cold_weather + CHI + IND + NE + NOR + NYJ + avg_fuml_plyr + 
##     grass_1
## 
##                 Df Sum of Sq   RSS      AIC
## - NOR            1      1.61 24944 -2648.92
## - IND            1      1.69 24944 -2648.83
## - NE             1      1.80 24944 -2648.70
## <none>                       24943 -2648.68
## - grass_1        1      1.89 24945 -2648.60
## - NYJ            1      2.56 24945 -2647.86
## - CHI            1      2.65 24945 -2647.76
## - cold_weather   1      3.30 24946 -2647.05
## - avg_fuml_plyr  1   2527.03 27470     1.63
## 
## Step:  AIC=-2648.92
## fuml ~ cold_weather + CHI + IND + NE + NYJ + avg_fuml_plyr + 
##     grass_1
## 
##                 Df Sum of Sq   RSS      AIC
## - IND            1      1.54 24946 -2649.22
## - grass_1        1      1.58 24946 -2649.17
## - NE             1      1.65 24946 -2649.10
## <none>                       24944 -2648.92
## - NYJ            1      2.38 24947 -2648.29
## - CHI            1      2.54 24947 -2648.12
## - cold_weather   1      3.51 24948 -2647.05
## - avg_fuml_plyr  1   2528.54 27473     2.74
## 
## Step:  AIC=-2649.22
## fuml ~ cold_weather + CHI + NE + NYJ + avg_fuml_plyr + grass_1
## 
##                 Df Sum of Sq   RSS      AIC
## - grass_1        1      1.31 24947 -2649.78
## - NE             1      1.52 24947 -2649.55
## <none>                       24946 -2649.22
## - NYJ            1      2.23 24948 -2648.77
## - CHI            1      2.44 24948 -2648.54
## - cold_weather   1      3.56 24949 -2647.30
## - avg_fuml_plyr  1   2527.83 27474     1.57
## 
## Step:  AIC=-2649.78
## fuml ~ cold_weather + CHI + NE + NYJ + avg_fuml_plyr
## 
##                 Df Sum of Sq   RSS      AIC
## - NE             1      1.25 24948 -2650.40
## <none>                       24947 -2649.78
## - NYJ            1      1.94 24949 -2649.64
## - CHI            1      2.69 24950 -2648.81
## - cold_weather   1      3.26 24950 -2648.18
## - avg_fuml_plyr  1   2526.94 27474    -0.01
## 
## Step:  AIC=-2650.4
## fuml ~ cold_weather + CHI + NYJ + avg_fuml_plyr
## 
##                 Df Sum of Sq   RSS      AIC
## <none>                       24948 -2650.40
## - NYJ            1      1.84 24950 -2650.38
## - CHI            1      2.57 24951 -2649.57
## - cold_weather   1      2.99 24951 -2649.10
## - avg_fuml_plyr  1   2532.79 27481     5.09
summary(aic_fuml)
## 
## Call:
## lm(formula = fuml ~ cold_weather + CHI + NYJ + avg_fuml_plyr, 
##     data = trainTransformedfuml)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.2543 -0.2691 -0.1107  0.0033 16.0229 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)    1.462e-16  5.748e-03   0.000   1.0000    
## cold_weather   1.045e-02  5.753e-03   1.816   0.0694 .  
## CHI           -9.681e-03  5.757e-03  -1.682   0.0926 .  
## NYJ           -8.184e-03  5.754e-03  -1.422   0.1550    
## avg_fuml_plyr  3.038e-01  5.752e-03  52.818   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9528 on 27479 degrees of freedom
## Multiple R-squared:  0.09223,    Adjusted R-squared:  0.0921 
## F-statistic:   698 on 4 and 27479 DF,  p-value: < 2.2e-16

RandomForest:

forest_fuml <- randomForest(fumlregform, data = trainTransformedfuml, 
                          importance = TRUE, ntree = 500)
## Warning in randomForest.default(m, y, ...): The response has five or fewer
## unique values. Are you sure you want to do regression?
plot(forest_fuml)

varImpPlot(forest_fuml)

## Conclusions

Rushing and passing data seems to be something that linear regression has better predictions for that receiving. This makes sense. RB’s and QB’s are generally singular players on the field. Both are heavily invested in by teams and are given a lot of touches every game. Receiving is a little more spread out. There are generally at minimum, 3 players in a receiving capacity (excluding the RB), 2 WR and a TE. There can be up to 4 WR on the field, so trying to predict who gets the ball will be harder because it is more uncertain.

RB’s are negatively effected by age, the data supports this well known fact, I was glad to see that relationship.

Fumbles and INTs are also going to be hard to predict because they are generally random, but highly dependent upon the player carrying the ball and the defense they are playing against.

The data seems to have some skewness, so I may have to explore other options for predicting.

Going forward, I would like to explore more fields, I have completely ignored the opponents in this analysis, and would like to add them in for the future.

As mentioned above, baseball will be better for predicting because of the nature of the game: One batter vs one pitcher. I would like to build an analysis for baseball based on a similar method as I have used for this.

Appendix

Charts

WR targets by avg yards per player

ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
  geom_point()+
  geom_text(data = subset(nfl_data, avg_recy_plyr > 75), aes(label = pname), size = 2.5)

There are few anomalies in this graph, not surprising, the amount of targets correlates with the amount of yards a player gets. The top right corner is “ALL PRO” corner.

**Tight ends should not be compared to WR

ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
  geom_point(data = subset(nfl_data, pos1 == "TE"))+
  geom_text(data = subset(nfl_data, avg_recy_plyr > 50 & pos1 == "TE"), aes(label = pname), size = 2.5)

I separated out the TE from the WR. TE are not “homerun” hitters, but are frequent targets of QB’s. Rob Gronkowski is the biggest anomaly here, he is widely considered the best position player to ever play.

** RB’s separated out

ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
  geom_point(data = subset(nfl_data, pos1 == "RB"))+
  geom_text(data = subset(nfl_data, avg_recy_plyr > 30 & pos1 == "RB"), aes(label = pname), size = 2.5)

CJ prosise was a rookie who had a couple of explosive games. He is a RB who played WR in college. He switched to RB his senior year of college and became an elite RB. This trend will regress somewhat, however, he is a very legit dual threat.

**WR only

ggplot(data = nfl_data, aes(x = avg_recy_plyr, y = avg_trg_plyr, col = Teams ))+
  geom_point(data = subset(nfl_data, pos1 == "WR"))+
  geom_text(data = subset(nfl_data, avg_recy_plyr > 70 & pos1 == "WR"), aes(label = pname), size = 2.5)